2100
Can bars have a grey backcolor and black border color for a summary-bar (EBN)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -2;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABN0GACAADACAxRDAMgBQKAAzQFAYahuGSGAAGMYxQgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQyDAAUIjOKsIhkGYcZAGQBJCjWGodQLOEgwH") +
"IERQjEyUJAGGQIHhyPYbUbGUpQHKkeRtGqgBgoKhKEouNYgAbGYIwTRsdyfDSXBpEWwbDgkNQwWTDNoRDIUQStCysaYjOpnfrUAJ1P7FdQ1NJkXRhGSSK7maapaiCSZ6" +
"STCMj1FhVKSNJ7DQKhGpgKh/ApgYpQOK4fLNXyRBK4QAyKA6bgPFZOZbFViaXY1V5bNKrcjhHQwAyHJ4XXRdV4YRAkUT4GqiJKGSYcQhuXZWbRqO6ABhef6DRThc6jKp" +
"FHIE4llEcojHqSZNgoIxnlgd5thsLREleL43gsYZ9BkaAYkMAgAm+CxGDWWAtiKCRfjcdRgHoHYnicUwgAIEIREAaQYkcQZUHIGRUDQJBOEYRAhDYCxGgMZAkCgdYQha" +
"XQIAYERwQuahXggdgeG6VZ4H4IhdiIGIOB8YIiGiHZZgqYpGF4KYHiKCI+CAU5jCiTQ2g0YhEFyax4gABAEIC"));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABU0IQAAYAQGKQYhiAKBQAGaAoDDcMA4QwAAyjAKMEwsACEIrjKCRShyCYZRhGcTAJBMIhiGQYAChEZxVhEMgzDjIAxSJAcQRFESaAABGCQG") +
"h+N4/S4NIi0CIsZQjCaiZ7pKA5bgMCo+UrNMixZQVCSOGChYRpCaZWpGGodQRUFbVHAlKypJKCKrEWSrDhuYAAW7XM7yBS1TzVNSuLZtaLqSroAJ1WTWMB0Ra8NzZEKf" +
"aZACj4arKejrRDCMAggI="));
	var_Appearance->Add(3,TVariant(String("gBFLBCJwBAEHhEJAAEhABN8GACAADACAxRDgMQBQKAAzQFAcDBvBgABiHEZoJhUAIIRZGMIjFDcEwxDSMY7jcYAFgkNQwCUtcBIJDEMIoAJLIwyBKkNQ5AabYrmWJpM") +
"gOEAyDSJM70DCEThLD4aZJnOa5ZjmH5LRBQdBRXQMYwIGCiZQpeKqbgMBoJApCIJxdBNLAAf60LLtGJaSpKZouViJNjSBD4HQTL6BQwsKxIDqaaD/WpgFuLTjiRImShc" +
"MQXJYFbwTOyBbDjG7rJr+FptYRbdYYRQ8dy7Cywa6pOa8YwacotZrAdDXHTmHw1PTRNDmTRYRwfKqJZxieqwHoMLYgAC8Ni3OaoDAiCRQGiYZyHKaRSwPBInIYIIjeRg" +
"zBSAYKCEOySEodZbjybo0HefwfhMLQDnKeg9D6LwsCeV5unYQJYH8Lxvj+a5jgSfIYH8T43hOcZ5H+X4nh2fB6F+aABnOAIfFgFgGgGH43nICoCl+eA1n0fBhAgVZ5gS" +
"HoID4FoDCCCBqBuBYUjgfgigGURYg4JoJmKCBFBaChikiNgVEYYpokYMoMCMKJWCkcIjgiZg6E0Do3gUASAg="));
G2antt1->Columns->Add(L"Task");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar->Color = 0x1000000;
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar1->Color = 0x2000000;
	Exg2anttlib_tlb::IBarPtr var_Bar2 = var_Chart->Bars->Copy(L"Summary",L"SummaryN");
		var_Bar2->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar2->Color = 0x3000000;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long hSummaryJ = var_Items->AddItem(TVariant("Summary A"));
	var_Items->AddBar(hSummaryJ,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("J"),TNoParam());
	long hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.1"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("J1"),TNoParam());
	hTaskJ = var_Items->InsertItem(hSummaryJ,TNoParam(),TVariant("Task A.2"));
	var_Items->AddBar(hTaskJ,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("J2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryJ,TVariant("J"),-1,TVariant("<*>"));
	long hSummaryK = var_Items->AddItem(TVariant("Summary B"));
	var_Items->AddBar(hSummaryK,TVariant("Summary"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("K"),TNoParam());
	long hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.1"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("K1"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryK,TNoParam(),TVariant("Task B.2"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("K2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryK,TVariant("K"),-1,TVariant("<*>"));
	long hSummaryN = var_Items->AddItem(TVariant("Summary C"));
	var_Items->AddBar(hSummaryN,TVariant("SummaryN"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,2).operator double()),TVariant("SN"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryN,TNoParam(),TVariant("Task B.1"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("N1"),TNoParam());
	hTaskK = var_Items->InsertItem(hSummaryN,TNoParam(),TVariant("Task B.2"));
	var_Items->AddBar(hTaskK,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("N2"),TNoParam());
	var_Items->DefineSummaryBars(hSummaryN,TVariant("SN"),-1,TVariant("<*>"));
	var_Items->set_ItemBar(0,TVariant("<K*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
	var_Items->set_ItemBar(0,TVariant("<N*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(8421504));
	var_Items->set_ExpandItem(0,true);
G2antt1->EndUpdate();

2099
How can I display UNICODE characters

G2antt1->BeginUpdate();
G2antt1->Chart->set_PaneWidth(true,0);
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		OLE Automation

	TypeLib: stdole2.tlb

	to define the namespace: Stdole_tlb
*/
//#include "STDOLE_TLB.h"
Stdole_tlb::FontPtr var_StdFont = G2antt1->Font;
	var_StdFont->Name = L"Arial Unicode";
	var_StdFont->Size = TVariant(long(22));
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderHidden;
G2antt1->DefaultItemHeight = 48;
G2antt1->Columns->Add(L"")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Ӓӓ"));
	var_Items->AddItem(TVariant("ᦜᦝ;ᦞ"));
	var_Items->AddItem(TVariant("ɮɭ;ɯ"));
	var_Items->AddItem(TVariant("勳勴勵勶"));
	var_Items->set_FormatCell(TVariant(var_Items->AddItem(TVariant(G2antt1->Version))),TVariant(0),L"(value lfind `UNICODE`) < 0 ? `<fgcolor=FF0000><b>!UNICODE!</b> version</fgcolor> required: ` + value : `` ");
G2antt1->EndUpdate();

2098
How can I display 12-hour time (method 2)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,0);
	var_Chart->LevelCount = 2;
	var_Chart->get_Level(0)->set_Label(TVariant(4096));
	Exg2anttlib_tlb::ILevelPtr var_Level = var_Chart->get_Level(1);
		var_Level->Unit = Exg2anttlib_tlb::UnitEnum::exHour;
		var_Level->FormatLabel = L"(0 := hour(dvalue)) < 12 ? ( `<fgcolor=808080>` + ( =:0 = 0 ? 12 : =:0 ) + `</fgcolor>` ) : (=:0 - 12)";
G2antt1->EndUpdate();

2097
How can I display 12-hour time (method 1)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,0);
	var_Chart->LevelCount = 2;
	var_Chart->get_Level(0)->set_Label(TVariant(4096));
	var_Chart->get_Level(1)->set_Label(TVariant("<%h12%>"));
G2antt1->EndUpdate();

2096
How do I scale to hours

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,0);
	var_Chart->LevelCount = 2;
	var_Chart->get_Level(0)->set_Label(TVariant(4096));
	var_Chart->get_Level(1)->set_Label(TVariant(65536));
G2antt1->EndUpdate();

2095
How do I display the position of the item with 0-padding

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Items")->FormatColumn = L"((1 apos ``) lpad `00`) + `. `  + value";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
	var_Items->AddItem(TVariant("Item D"));
G2antt1->EndUpdate();

2094
Can I format the label in row 3 below to show day numbers, only for Mondays each week (sample 2)

Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,0);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,1,31).operator double()));
	var_Chart->LevelCount = 3;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
	Exg2anttlib_tlb::ILevelPtr var_Level = var_Chart->get_Level(0);
		var_Level->set_Label(TVariant("<%mmmm%> <%yyyy%>"));
		var_Level->Alignment = Exg2anttlib_tlb::AlignmentEnum::CenterAlignment;
		var_Level->Unit = Exg2anttlib_tlb::UnitEnum::exMonth;
	Exg2anttlib_tlb::ILevelPtr var_Level1 = var_Chart->get_Level(1);
		var_Level1->Unit = Exg2anttlib_tlb::UnitEnum::exWeek;
		var_Level1->set_Label(TVariant("Week <%ww%>"));
		var_Level1->Alignment = Exg2anttlib_tlb::AlignmentEnum::CenterAlignment;
	Exg2anttlib_tlb::ILevelPtr var_Level2 = var_Chart->get_Level(2);
		var_Level2->Unit = Exg2anttlib_tlb::UnitEnum::exDay;
		var_Level2->FormatLabel = L"weekday(dvalue) = 1 ? day(dvalue): ''";
	var_Chart->UnitWidth = 23;

2093
Can I format the label in row 3 below to show day numbers, only for Mondays each week (sample 1)

Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,0);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,1,31).operator double()));
	var_Chart->LevelCount = 3;
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
	Exg2anttlib_tlb::ILevelPtr var_Level = var_Chart->get_Level(0);
		var_Level->set_Label(TVariant("<%mmmm%> <%yyyy%>"));
		var_Level->Alignment = Exg2anttlib_tlb::AlignmentEnum::CenterAlignment;
		var_Level->Unit = Exg2anttlib_tlb::UnitEnum::exMonth;
	Exg2anttlib_tlb::ILevelPtr var_Level1 = var_Chart->get_Level(1);
		var_Level1->Unit = Exg2anttlib_tlb::UnitEnum::exWeek;
		var_Level1->set_Label(TVariant("Week <%ww%>"));
		var_Level1->Alignment = Exg2anttlib_tlb::AlignmentEnum::CenterAlignment;
	Exg2anttlib_tlb::ILevelPtr var_Level2 = var_Chart->get_Level(2);
		var_Level2->Unit = Exg2anttlib_tlb::UnitEnum::exDay;
		var_Level2->FormatLabel = L"weekday(dvalue) = 1 ? value : ''";
	var_Chart->UnitWidth = 23;

2092
How can I change the caption for all bars

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Tasks");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,8,1).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,128);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Add(L"Task%Progress");
		var_Bar->Shortcut = L"Task";
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarShowPercentCaption,TVariant(true));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2017,8,2).operator double()),TVariant(TDateTime(2017,8,6).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2017,8,3).operator double()),TVariant(TDateTime(2017,8,9).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 3")),TVariant("Task"),TVariant(TDateTime(2017,8,4).operator double()),TVariant(TDateTime(2017,8,13).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 4")),TVariant("Task"),TVariant(TDateTime(2017,8,5).operator double()),TVariant(TDateTime(2017,8,16).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarShowPercentCaption,TVariant(false));
	var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%= %C0 replace `Task` with `Task<off 4><b>` %>"));
	var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
G2antt1->EndUpdate();

2091
Can't get the +/- to be displayed on a divider item. What else can I do

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->TreeColumnIndex = 0;
G2antt1->MarkSearchColumn = false;
G2antt1->FullRowSelect = Exg2anttlib_tlb::CellSelectEnum::exColumnSel;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum(0xfffffff8 | Exg2anttlib_tlb::AppearanceEnum::Bump | Exg2anttlib_tlb::AppearanceEnum::Sunken);
G2antt1->Chart->set_PaneWidth(true,0);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"C1")->Width = 32;
	var_Columns->Add(L"C2")->FormatColumn = L"1 index ``";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Cell 1"));
	var_Items->set_CellSingleLine(TVariant(h),TVariant(1),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
	h = var_Items->AddItem(TVariant("This is bit of text merges all cells in the item (divider shows no +/-)"));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_ItemBackColor(h,RGB(240,240,240));
	var_Items->set_ItemDividerLine(h,Exg2anttlib_tlb::DividerLineEnum::EmptyLine);
	var_Items->set_CellHAlignment(TVariant(h),TVariant(0),Exg2anttlib_tlb::AlignmentEnum::CenterAlignment);
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Cell 3"));
	h = var_Items->AddItem(TVariant("This is bit of text merges all cells in the item (merge shows +/-)"));
	var_Items->set_ItemBackColor(h,RGB(240,240,240));
	var_Items->set_CellMerge(TVariant(h),TVariant(0),TVariant(1));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 3"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 4"));
	var_Items->set_ExpandItem(h,true);
G2antt1->EndUpdate();

2090
How can I display one or more columns on the same bar

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemDividerLine(Item,Exg2anttlib_tlb::DividerLineEnum::EmptyLine);
		var_Items->AddBar(Item,TVariant("Summary"),TVariant(TDateTime(2017,12,2).operator double()),TVariant(TDateTime(2017,12,2).operator double()),TNoParam(),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant(""),-3,TVariant(""));
		long l = var_Items->get_GroupItem(Item);
		var_Items->set_CellSingleLine(TVariant(Item),TVariant(l),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
		var_Items->set_CellBold(TVariant(Item),TVariant(l),true);
		var_Items->set_ItemBackColor(Item,RGB(190,190,190));
	G2antt1->Chart->set_ItemBackColor(Item,RGB(190,190,190));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,10).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABOUGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCMQwAFBIbhrE4ZBjHGQRUgyI43RhHUBzV") +
"IUBxDEaTZLlEYJBgeHYhDJPcaUVDcWQHGyeZwjSgpKoWSJIU5NcggPDgEwTKCmKlTAKoSzJMyEmwWRAdVTZLSEaxierKPhyWT/XgAF4PfDFKRXFqXY5mKZJFqKOI8TxI" +
"NgxPQMGyrBqraLqKwQGrGCQKSBhUZ3dS2JR3OSlYRuQAMVgOXoDZhPWZXbDtSzPE63NgtOR5DiGWalABoeoxRa9cz3ViCJSrGTqIoINIzZLHFQbPpdAYdP6BeIjXhhZx" +
"BBuLZXmEOh9CcNoni2N4MjWVodh+DpfBeLJinsWR9AyYwVAkGBhEAFphGiRogDEGBamkFgtjcZgHiMbgehYaQhAIEIREAaQYkcQZUHIGRUGQDBOEaBAhDYDxGkMZAkCg" +
"eoagYZAYEYAYIAWGhemICIFj8WIiCiFR5gkIhogmBoKGKJx2C6C5hniMgggqYwog0UoNGMZJiDiCZRgOLY0ECUAQICA=="));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->StartShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty;
		var_Bar->EndShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolid;
		var_Bar->Color = 0x1000000;
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%513%>"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar1->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox;
		var_Bar1->Color = RGB(164,164,164);
		var_Bar1->StartColor = RGB(240,240,240);
		var_Bar1->EndColor = var_Bar1->StartColor;
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%= `<font ;6><fgcolor=0000FF><i>` + %C0 + ` ` + %C1 + ` ` + %C2 %>"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(13));
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"C1");
	var_Columns->Add(L"C2")->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
	var_Columns->Add(L"C3")->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos");
		var_Column->FormatColumn = L"1 pos ``";
		var_Column->AllowGroupBy = false;
		var_Column->Position = 0;
		var_Column->Width = 48;
		var_Column->AllowSizing = false;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column.";
G2antt1->AllowGroupBy = true;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exNoLinesAtRoot;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.3"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.4"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.5"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.6"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.7"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.8"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.3"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.4"));
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column1->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->EndUpdate();

2089
How can I associate a box/note to a date into the control's header

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Task");
G2antt1->HeaderHeight = 17;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->set_PaneWidth(false,96);
	var_Chart->LevelCount = 2;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item 1"));
	var_Items->set_SelectItem(var_Items->AddItem(TVariant("Item 2")),true);
	var_Items->AddItem(TVariant("Item 3"));
Exg2anttlib_tlb::INotesPtr var_Notes = G2antt1->Chart->Notes;
	Exg2anttlib_tlb::IItemsPtr var_Items1 = G2antt1->Items;
		var_Items1->set_LockedItemCount(Exg2anttlib_tlb::VAlignmentEnum::exTop,1);
		long hLocked = var_Items1->get_LockedItem(Exg2anttlib_tlb::VAlignmentEnum::exTop,0);
		var_Items1->set_ItemHeight(hLocked,1);
	Exg2anttlib_tlb::INotePtr var_Note = var_Notes->Add(TVariant("header"),TVariant(hLocked),TVariant(TDateTime(2001,1,7).operator double()),L"Date:<br><%dd%>/<%mm%><br><b><%yyyy%></b>");
		var_Note->set_PartVisible(Exg2anttlib_tlb::NotePartEnum::exNoteStart,true);
		var_Note->set_PartText(Exg2anttlib_tlb::NotePartEnum::exNoteStart,L"<b><%d%></b>");
		var_Note->set_PartCanMove(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,true);
		var_Note->set_PartCanMove(Exg2anttlib_tlb::NotePartEnum::exNoteStart,true);
		var_Note->set_PartVOffset(Exg2anttlib_tlb::NotePartEnum::exNoteStart,-9);
		var_Note->set_PartVOffset(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,20);
		var_Note->set_PartHOffset(Exg2anttlib_tlb::NotePartEnum::exNoteEnd,20);
		var_Note->set_PartBackColor(Exg2anttlib_tlb::NotePartEnum::exNoteStart,RGB(255,255,0));
		var_Note->set_PartFixedWidth(Exg2anttlib_tlb::NotePartEnum::exNoteStart,18);
G2antt1->EndUpdate();

2088
How can I define a column of button type

// ButtonClick event - Occurs when user clicks on the cell's button.
void __fastcall TForm1::G2antt1ButtonClick(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,Variant   Key)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		OutputDebugString( PChar(var_Items->get_CellValue(TVariant(Item),TVariant(ColIndex))) );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Button");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasButton,TVariant(true));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellButtonAutoWidth,TVariant(false));
	var_Column->FormatColumn = L"``";
	var_Column->AllowSizing = false;
	var_Column->Width = 48;
G2antt1->Columns->Add(L"Second")->FormatColumn = L"` Item ` + 1 index ``";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Button 1"));
	var_Items->AddItem(TVariant("Button 2"));
	var_Items->AddItem(TVariant("Button 3 "));
G2antt1->EndUpdate();

2087
Is it possible to configure different colour/icon when there is a active filter

// FilterChange event - Occurs when the filter was changed.
void __fastcall TForm1::G2antt1FilterChange(TObject *Sender)
{
	G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = G2antt1->FormatABC(L"value = 0 ? 0x1000001 : 0x10000FF ",TVariant(G2antt1->Columns->get_Item(TVariant(0))->FilterType),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->RenderType = -16777216;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQ") +
"gmPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYTh" +
"dr4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA"));
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->ShowFocusRect = false;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = 0x1000001;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCursorHoverColumn] = -1;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->BackColorHeader = RGB(255,255,255);
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Filter");
	var_Column->DisplayFilterButton = true;
	var_Column->AllowSort = false;
	var_Column->AllowDragging = false;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowCheckBox;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column1->Filter = L"Item B";
	var_Column1->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2086
ADODB Requery sample

// ButtonClick event - Occurs when user clicks on the cell's button.
void __fastcall TForm1::G2antt1ButtonClick(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,Variant   Key)
{
	/*
		Select the Component\Import Component...\Import a Type Library,
		to import the following Type Library:
			Microsoft ActiveX Data Objects 6.1 Library
		TypeLib: msado15.dll
		to define the namespace: Adodb_tlb
	*/
	//#include "ADODB_TLB.h"
	Adodb_tlb::_CommandPtr cmd = Variant::CreateObject(L"ADODB.Command");
		cmd->set_ActiveConnection(G2antt1(IDispatch*)->DataSource->get_ActiveConnection());
		cmd->CommandText = L"INSERT INTO Orders (EmployeeID) VALUES(12345)";
		cmd->CommandType = Adodb_tlb::CommandTypeEnum::adCmdText;
		cmd->Execute(TNoParam(),TNoParam(),0);
	(IDispatch*)G2antt1->DataSource->Requery(0);
}

// Error event - Fired when an internal error occurs.
void __fastcall TForm1::G2antt1Error(TObject *Sender,long   Error,BSTR   Description)
{
	OutputDebugString( L"Description" );
}

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->ColumnAutoResize = false;
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADODB.Recordset");
	rs->Open(TVariant("Select * From Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenKeyset,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
G2antt1->ConditionalFormats->Add(L"%1=12345",TNoParam())->BackColor = RGB(240,240,240);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_LockedItemCount(Exg2anttlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exg2anttlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_ItemDivider(h,0);
	var_Items->set_CellHasButton(TVariant(h),TVariant(0),true);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("Requery (add a new record, using ADODB.Command)"));
	var_Items->set_CellHAlignment(TVariant(h),TVariant(0),Exg2anttlib_tlb::AlignmentEnum::CenterAlignment);
G2antt1->EndUpdate();

2085
I am skinning the control's header-bar, but the background of the header-bar is shown on each item in the filter-bar drop down panel. What can I do

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABFgDg6AADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjH") +
"LUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQGhsCYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU8lORLUi+M4zSBPcZVTRtGShPDB" +
"KTjMKKYgkG4lVpRNa0PC1GTzQ6mazkKQLRADDIDVbAeL3LiMBy9LyLLItQALByua5mWhbcZyBCOPgBTrRb5zO58FjuTK7YLjMB7NrUNYtFaUMy2OpOCADIaecTNcaWLx" +
"PF2MY1HWYxVj2Jw3DuRJonKYBgggSRAlIYw6B0ThGFgPAkFUDAhBMfZRiGNAkFECZnm4YQdneJwqnsSQrGAAhWAIJBJBIQgFCQIBiEIAglgqYo0i4V4MEgRI9gSToYFS" +
"b4Fk6Y4+BmBZhFOJgTC8TBogQAArgqco4muCZOkOMJtgmYpIjYKg7GKE4uCUK4AAKKg2DwI4DiCZw5k6KJ2D6D4OHiag4DwIxiiQAArAqMosnEPBPAOIhOg+DozjIJ4P" +
"GSY4iEwPAkhKLhHUUSQsnKFCnkYU9MjORhcCsAAIACLQ8iaSJ6FKC5jJoaobA8KYoACCRKnmMJzhuDpZnSboMCKGJ4nMPIPDmYAACwKIDk6CoLCeU40m6I5oliMoKDya" +
"ICokLIpgoThviOKJoGYf4KmUKhMjMLJLCAAojCyaYoiYGoGmqM46CkOwPEoKonAACxKlSdItmiWBeBeDgrioNo3D0KxSlAAAtgsUpYnUPRPEoco8hCa+T40SxbBRj5tE" +
"sHJ1i6JhbGYS4ug8awelQLZAAKZI5C4DxrhYQ9ehmUppWiA48nAPRuFKYpiAAC47laZQ9iuKZSgOPotkuFI7C6C4gACPJAm8eQOhOQZoikDp3kCS5AACPoEk8fBGnqQg" +
"pDOSppD2TxjlyPZD6CfwekQTx5lKP5ImseZTCAL5MAMAAAkoTADmMLpIjISp+HSS4PgyMAADBzAHDSIoPCOUpWjObIKE8NJOHKIwPEaTprBsHpdjWLB9AieQ+DQYwQAA" +
"MR1EOZxWi+bx7HcWQ8msfRYnnDhQACRwxgwc5rGaMZPE0ZxqjWNZtgyRwAAyTZEnuXJzEyAx2kQcxNkye5cEy3cYAcANrGAIH4OAhx3gNGGPAfgIR8jBA4McBMARViHH" +
"4HQOYmxuCpF2MsecEQVBvGQCcIQvA6i2CAAIARAQ="));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzQFAYcBqGqGAAGQZxYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMwwDhEIwjHCEEhsGIbJAGQBJCjWGodQLOEgzN") +
"C0IxNFCQILhEZJADKII8TTOU5UPRESwTE4cKBmKhQCo2NpKR7VUTxCKQahLLivoCjBT8EzHMqtIzrCA6MpaP4pQjKcqwHJ8YyHEi0ZrjazKaj6T5AXDUcaWbbNVx3PK3" +
"aioOpLZrqOZZYzYFoABTuJzPMSyIhxXD8cweaZvSpLExVYK9BY3PbKMgxC77QgTIpDaQMNS6PjtF43PAALLFUaNYzoOKzABMHATBIXAYJCwIIR5G7ID4BbQcCQAHL9DB" +
"aEEIAEEISgGhMGZQmocgymmIRQkIEQ2BcGgbEIRQci8XaMBqTRVgSAZHG+S5pnOep+D6f4vjec5zn0fpfmgBgAH6TRoBYBoAh+eAmAiAgPFgNArgOQpIESdoEmCOAOAq" +
"BYfFGAgaEaBgYHYFYFmIB5UiGCJUgKCgmgeYoHk4BgCmKRQiCwApgHgYgyH8B54lQU4NkMeJlBoDgjkiXBTg0R54iYIR+koeQVBoKpkgkChKhEJBkF4SFEjkDgJhFQoe" +
"EmDJlBeehUhWJQJGIXoICWOQ6FeFIlhkfhlDsSJpiQVoamaSY2G6G5nAmRhpCOH5pkwVYdmeCZmHqHpnkmdhzhmaAIFiax8AABAEICA=="));
G2antt1->BackColorHeader = 0x1000000;
G2antt1->ForeColorHeader = RGB(128,128,128);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = 0x2000000;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exBackColorFilter] = RGB(255,255,255);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exForeColorFilter] = RGB(0,0,1);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSelBackColorFilter] = 0x1ff8000;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exSelForeColorFilter] = RGB(240,240,240);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCursorHoverColumn] = -1;
G2antt1->HeaderHeight = 24;
G2antt1->BackColorLevelHeader = G2antt1->BackColor;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Filter");
	var_Column->DisplayFilterButton = true;
	var_Column->DisplayFilterPattern = false;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exHeaderPaddingLeft,TVariant(2));
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exHeaderPaddingRight,TVariant(2));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("A"));
	var_Items->AddItem(TVariant("B"));
	var_Items->AddItem(TVariant("C"));
	var_Items->AddItem(TVariant("D"));
G2antt1->EndUpdate();

2084
I specify the ItemHeight for each row, but as soon as I click the chart section, the item's height is restored to default (not working). What could be the cause

G2antt1->BeginUpdate();
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Types");
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
	var_Chart->AllowLinkBars = false;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->set_PaneWidth(false,112);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%9%>"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("ItemMinHeight"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,7).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("A1"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A2"),TNoParam());
	var_Items->set_ItemMinHeight(h,64);
	var_Items->AddBar(var_Items->AddItem(TVariant("Default (One)")),TVariant("Task"),TVariant(TDateTime(2001,1,7).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("A3"),TNoParam());
	h = var_Items->AddItem(TVariant("Default (Two)"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,7).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("A4"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A5"),TNoParam());
	h = var_Items->AddItem(TVariant("ItemFixedHeight"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,7).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("A6"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A7"),TNoParam());
	var_Items->set_ItemMinHeight(h,20);
	var_Items->set_ItemMaxHeight(h,20);
	h = var_Items->AddItem(TVariant("ItemMaxHeight"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,7).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("A8"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,8).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A9"),TNoParam());
	var_Items->set_ItemMaxHeight(h,24);
G2antt1->EndUpdate();

2083
The ItemHeight property is not working (method 2)

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Column")->Width = 128;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellSingleLine(TVariant(var_Items->AddItem(TVariant("This is a bit of text that should break the line"))),TVariant(0),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_ItemDividerLineAlignment(h,Exg2anttlib_tlb::DividerAlignmentEnum::DividerCenter);
	var_Items->set_ItemHeight(h,3);
	var_Items->set_CellSingleLine(TVariant(var_Items->AddItem(TVariant("This is a bit of text that should break the line"))),TVariant(0),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
G2antt1->EndUpdate();

2082
The ItemHeight property is not working (method 1)

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
G2antt1->ScrollBySingleLine = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Column");
	var_Column->Width = 128;
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellSingleLine,TVariant(0));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("This is a bit of text that should break the line"));
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_ItemDivider(h,0);
	var_Items->set_SelectableItem(h,false);
	var_Items->set_ItemDividerLineAlignment(h,Exg2anttlib_tlb::DividerAlignmentEnum::DividerCenter);
	var_Items->set_ItemMinHeight(h,3);
	var_Items->set_ItemMaxHeight(h,3);
	var_Items->AddItem(TVariant("This is a bit of text that should break the line"));
G2antt1->EndUpdate();

2081
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeCheckColumns

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exColumnsFloatBar] = L"Show/Hide";
G2antt1->ColumnsFloatBarSortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->ColumnsFloatBarVisible = Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeCheckColumns;
G2antt1->EndUpdate();

2080
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeHiddenColumn

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start")->Visible = false;
	var_Columns->Add(L"End")->Visible = false;
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exColumnsFloatBar] = L"Show";
G2antt1->ColumnsFloatBarVisible = Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeHiddenColumns;
G2antt1->ColumnsFloatBarSortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->EndUpdate();

2079
How do I use the ColumnsFloatBarVisible on exColumnsFloatBarVisibleIncludeGroupByColumns

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"City");
	var_Columns->Add(L"Start");
	var_Columns->Add(L"End");
G2antt1->AllowGroupBy = true;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column.";
G2antt1->BackColorSortBar = RGB(250,250,250);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exColumnsFloatBar] = L"Group-By";
G2antt1->ColumnsFloatBarVisible = Exg2anttlib_tlb::ColumnsFloatBarVisibleEnum::exColumnsFloatBarVisibleIncludeGroupByColumns;
G2antt1->ColumnsFloatBarSortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->Columns->get_Item(TVariant("City"))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->EndUpdate();

2078
How can I advance to the next line, once the user presses the ENTER key

// KeyDown event - Occurs when the user presses a key while an object has the focus.
void __fastcall TForm1::G2antt1KeyDown(TObject *Sender,short *   KeyCode,short   Shift)
{
	OutputDebugString( L"KeyCode Before:" );
	OutputDebugString( L"KeyCode" );
	KeyCode = TVariant(G2antt1->FormatABC(L"value = 13 ? 40 : value",TVariant(KeyCode),TNoParam(),TNoParam()));
	OutputDebugString( L"KeyCode After:" );
	OutputDebugString( L"KeyCode" );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Columns->Add(L"A")->Editor;
		var_Editor->Appearance = Exg2anttlib_tlb::InplaceAppearanceEnum::EtchedApp;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
	Exg2anttlib_tlb::IEditorPtr var_Editor1 = var_Columns->Add(L"B")->Editor;
		var_Editor1->Appearance = Exg2anttlib_tlb::InplaceAppearanceEnum::EtchedApp;
		var_Editor1->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h0 = var_Items->AddItem(TVariant("Item A.1"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Item B.1"));
	h0 = var_Items->AddItem(TVariant("Item A.2"));
	var_Items->set_CellValue(TVariant(h0),TVariant(1),TVariant("Item B.2"));
G2antt1->EndUpdate();

2077
I am using AddNew to add new records, but I can not see them into the control

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(1))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TNoParam(),TNoParam());
}

// ButtonClick event - Occurs when user clicks on the cell's button.
void __fastcall TForm1::G2antt1ButtonClick(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,Variant   Key)
{
	/*
		Select the Component\Import Component...\Import a Type Library,
		to import the following Type Library:
			Microsoft ActiveX Data Objects 6.1 Library
		TypeLib: msado15.dll
		to define the namespace: Adodb_tlb
	*/
	//#include "ADODB_TLB.h"
	Adodb_tlb::_RecordsetPtr var_Recordset = (IDispatch*)G2antt1->DataSource;
		var_Recordset->AddNew(TNoParam(),TNoParam());
		var_Recordset->Fields->get_Item(TVariant("Name"))->set_Value(TVariant("Task New"));
		var_Recordset->Update(TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADODB.Recordset");
	Adodb_tlb::FieldsPtr var_Fields = rs->Fields;
		var_Fields->Append(L"Name",Adodb_tlb::DataTypeEnum::adBSTR,0,TNoParam(),TNoParam());
		var_Fields->Append(L"Start",Adodb_tlb::DataTypeEnum::adDate,0,TNoParam(),TNoParam());
		var_Fields->Append(L"End",Adodb_tlb::DataTypeEnum::adDate,0,TNoParam(),TNoParam());
	rs->Open(TNoParam(),TNoParam(),TNoParam(),TNoParam(),0);
	rs->AddNew(TNoParam(),TNoParam());
	rs->Fields->get_Item(TVariant("Name"))->set_Value(TVariant("Task A"));
	rs->Fields->get_Item(TVariant("Start"))->set_Value(TVariant(TDateTime(2001,1,4).operator double()));
	rs->Fields->get_Item(TVariant("End"))->set_Value(TVariant(TDateTime(2001,1,10).operator double()));
	rs->Update(TNoParam(),TNoParam());
	rs->AddNew(TNoParam(),TNoParam());
	rs->Fields->get_Item(TVariant("Name"))->set_Value(TVariant("Task B"));
	rs->Fields->get_Item(TVariant("Start"))->set_Value(TVariant(TDateTime(2001,1,5).operator double()));
	rs->Fields->get_Item(TVariant("End"))->set_Value(TVariant(TDateTime(2001,1,11).operator double()));
	rs->Update(TNoParam(),TNoParam());
G2antt1->DataSource = (IDispatch*)rs;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant("Start"))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant("End"))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_LockedItemCount(Exg2anttlib_tlb::VAlignmentEnum::exTop,1);
	long h = var_Items->get_LockedItem(Exg2anttlib_tlb::VAlignmentEnum::exTop,0);
	var_Items->set_ItemDivider(h,0);
	var_Items->set_CellHasButton(TVariant(h),TVariant(0),true);
	var_Items->set_CellValue(TVariant(h),TVariant(0),TVariant("AddNew"));
	var_Items->set_CellHAlignment(TVariant(h),TVariant(0),Exg2anttlib_tlb::AlignmentEnum::CenterAlignment);
G2antt1->DetectAddNew = true;
G2antt1->DetectDelete = true;
G2antt1->EndUpdate();

2076
How can I create a new ADO recordset

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(1))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADODB.Recordset");
	Adodb_tlb::FieldsPtr var_Fields = rs->Fields;
		var_Fields->Append(L"Name",Adodb_tlb::DataTypeEnum::adBSTR,0,TNoParam(),TNoParam());
		var_Fields->Append(L"Start",Adodb_tlb::DataTypeEnum::adDate,0,TNoParam(),TNoParam());
		var_Fields->Append(L"End",Adodb_tlb::DataTypeEnum::adDate,0,TNoParam(),TNoParam());
	rs->Open(TNoParam(),TNoParam(),TNoParam(),TNoParam(),0);
	rs->AddNew(TNoParam(),TNoParam());
	rs->Fields = Adodb_tlb::CursorTypeEnum::adOpenForwardOnly;
	rs->Fields = Adodb_tlb::CursorTypeEnum::adOpenForwardOnly;
	rs->Fields = Adodb_tlb::CursorTypeEnum::adOpenForwardOnly;
	rs->Update(TNoParam(),TNoParam());
	rs->AddNew(TNoParam(),TNoParam());
	rs->Fields = Adodb_tlb::CursorTypeEnum::adOpenForwardOnly;
	rs->Fields = Adodb_tlb::CursorTypeEnum::adOpenForwardOnly;
	rs->Fields = Adodb_tlb::CursorTypeEnum::adOpenForwardOnly;
	rs->Update(TNoParam(),TNoParam());
G2antt1->DataSource = (IDispatch*)rs;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant("Start"))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant("End"))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
G2antt1->EndUpdate();

2075
Do do I get the DAO version I have installed

OutputDebugString( Variant::CreateObject(L"DAO.DBEngine.35")->Version->Version );
OutputDebugString( Variant::CreateObject(L"DAO.DBEngine.36")->Version->Version );
OutputDebugString( Variant::CreateObject(L"DAO.DBEngine.120")->Version->Version );

2074
How do I get a list of interfaces the object implemenets

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft Office 15.0 Access database engine Object Library

	TypeLib: ACEDAO.DLL

	to define the namespace: Dao_tlb
*/
//#include "DAO_TLB.h"
Dao_tlb::_DBEnginePtr var_PrivDBEngine = Variant::CreateObject(L"DAO.DBEngine.120");
	Dao_tlb::Recordset2Ptr rs = var_PrivDBEngine->OpenDatabase(L"C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb",TNoParam(),TNoParam(),TNoParam())->OpenRecordset(L"Orders",TNoParam(),TNoParam(),TNoParam());
OutputDebugString( PChar(Variant::CreateObject(L"Exontrol.PropertiesList")) );
G2antt1->DataSource = (IDispatch*)rs;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,4).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
G2antt1->EndUpdate();

2073
Do do I get the ADO version I have installed

OutputDebugString( L"ADO Version:" );
OutputDebugString( Variant::CreateObject(L"ADODB.Connection")->Version->Version );

2072
DAO, ACCDB, 120

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft Office 15.0 Access database engine Object Library

	TypeLib: ACEDAO.DLL

	to define the namespace: Dao_tlb
*/
//#include "DAO_TLB.h"
Dao_tlb::_DBEnginePtr var_PrivDBEngine = Variant::CreateObject(L"DAO.DBEngine.120");
	Dao_tlb::Recordset2Ptr rs = var_PrivDBEngine->OpenDatabase(L"C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb",TNoParam(),TNoParam(),TNoParam())->OpenRecordset(L"Orders",TNoParam(),TNoParam(),TNoParam());
G2antt1->DataSource = (IDispatch*)rs;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,4).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
G2antt1->EndUpdate();

2071
DAO, MDB, 120

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft Office 15.0 Access database engine Object Library

	TypeLib: ACEDAO.DLL

	to define the namespace: Dao_tlb
*/
//#include "DAO_TLB.h"
Dao_tlb::_DBEnginePtr var_PrivDBEngine = Variant::CreateObject(L"DAO.DBEngine.120");
	Dao_tlb::Recordset2Ptr rs = var_PrivDBEngine->OpenDatabase(L"C:\\Program Files\\Exontrol\\ExG2antt\\sample\\Access\\misc.mdb",TNoParam(),TNoParam(),TNoParam())->OpenRecordset(L"Orders",TNoParam(),TNoParam(),TNoParam());
G2antt1->DataSource = (IDispatch*)rs;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,4).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
G2antt1->EndUpdate();

2070
DAO, MDB

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft DAO 3.6 Object Library

	TypeLib: dao360.dll

	to define the namespace: Dao_tlb
*/
//#include "DAO_TLB.h"
Dao_tlb::_DBEnginePtr var_PrivDBEngine = Variant::CreateObject(L"DAO.DBEngine.36");
	Dao_tlb::RecordsetPtr rs = var_PrivDBEngine->OpenDatabase(L"C:\\Program Files\\Exontrol\\ExG2antt\\sample\\Access\\misc.mdb",TNoParam(),TNoParam(),TNoParam())->OpenRecordset(L"Orders",TNoParam(),TNoParam(),TNoParam());
G2antt1->DataSource = (IDispatch*)rs;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,4).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
G2antt1->EndUpdate();

2069
ADODB, ACCDB, x64

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADODB.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenKeyset,Adodb_tlb::LockTypeEnum::adLockReadOnly,0);
G2antt1->DataSource = (IDispatch*)rs;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,4).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
G2antt1->EndUpdate();

2068
ADOR, ACCDB

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,4).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
G2antt1->EndUpdate();

2067
ADODB, MDB

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADODB.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,4).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
G2antt1->EndUpdate();

2066
ADOR, MDB

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Task"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = false;
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft ActiveX Data Objects 6.1 Library

	TypeLib: msado15.dll

	to define the namespace: Adodb_tlb
*/
//#include "ADODB_TLB.h"
Adodb_tlb::_RecordsetPtr rs = Variant::CreateObject(L"ADOR.Recordset");
	rs->Open(TVariant("Orders"),TVariant("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Program Files\\Exontrol\\ExG2antt\\Sample\\Access\\misc.accdb"),Adodb_tlb::CursorTypeEnum::adOpenStatic,Adodb_tlb::LockTypeEnum::adLockOptimistic,0);
G2antt1->DataSource = (IDispatch*)rs;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(1994,8,4).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,256);
G2antt1->Items->AllowCellValueToItemBar = true;
G2antt1->Columns->get_Item(TVariant(2))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
G2antt1->Columns->get_Item(TVariant(4))->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
G2antt1->EndUpdate();

2065
I am using exCellValueToItemBarProperty, Is it possible to “disable” this synchronisation for one (or several) item (sample-2)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Tasks");
	var_Columns->Add(L"Start")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
	var_Columns->Add(L"End")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,196);
	var_Chart->AllowCreateBar = Exg2anttlib_tlb::CreateBarEnum::exCreateBarAuto;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AllowCellValueToItemBar = true;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,24).operator double()),TNoParam(),TNoParam());
	long h = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2006,9,22).operator double()),TVariant(TDateTime(2006,9,25).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBold(h,true);
	var_Items->CellValueToItemBar(TVariant(h),TVariant(1),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarStart,TVariant("newbar"));
	var_Items->CellValueToItemBar(TVariant(h),TVariant(2),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarEnd,TVariant("newbar"));
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 3")),TVariant("Task"),TVariant(TDateTime(2006,9,23).operator double()),TVariant(TDateTime(2006,9,26).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

2064
I am using exCellValueToItemBarProperty, Is it possible to “disable” this synchronisation for one (or several) item (sample-1)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Tasks");
	var_Columns->Add(L"Start")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
	var_Columns->Add(L"End")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2006,9,20).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,196);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AllowCellValueToItemBar = true;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2006,9,21).operator double()),TVariant(TDateTime(2006,9,24).operator double()),TNoParam(),TNoParam());
	long h = var_Items->AddItem(TVariant("Task 2"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2006,9,22).operator double()),TVariant(TDateTime(2006,9,25).operator double()),TNoParam(),TNoParam());
	var_Items->set_FormatCell(TVariant(h),TVariant(1),L"``");
	var_Items->set_FormatCell(TVariant(h),TVariant(2),L"``");
	var_Items->set_ItemBold(h,true);
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 3")),TVariant("Task"),TVariant(TDateTime(2006,9,23).operator double()),TVariant(TDateTime(2006,9,26).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

2063
How can I use the CRD (eXCRD format)

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellFormatLevel,TVariant(String("[b=0]60;1[b=15]:60,((20;\"<fgcolor=808080>Dateigröße\"[b=1][a=2]:120,2[b=15])/(20;\"<fgcolor=808080>Erstellt am\"[a=2]:120,3[b=") +
"15])/(20;\"<fgcolor=808080>Zuletzt bearbeitet\"[b=4][a=2]:120,4[b=15]))"));
	var_Column->AllowSort = false;
G2antt1->Columns->Add(L"1")->Visible = false;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"2");
	var_Column1->Visible = false;
	var_Column1->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
	var_Column1->FormatColumn = L"1 index `A-Z`";
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"3");
	var_Column2->Visible = false;
	var_Column2->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
	var_Column2->FormatColumn = L"1 index ``";
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->Add(L"4");
	var_Column3->Visible = false;
	var_Column3->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
	var_Column3->FormatColumn = L"date(``)";
String dih = 48;
G2antt1->DefaultItemHeight = dih;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
	var_Chart->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
	var_Chart->set_PaneWidth(false,256);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->Bars->get_Item(TVariant("Task"))->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("One"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,12).operator double()),TVariant("A"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,14).operator double()),TVariant("B"),TNoParam());
	var_Items->set_ItemMaxHeight(h,dih);
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Two"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("A"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("B"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,14).operator double()),TVariant("B2"),TNoParam());
	var_Items->set_ItemMaxHeight(h,dih);
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Three"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TVariant("A"),TNoParam());
G2antt1->EndUpdate();

2062
Type of wraps the cell's caption support (Sample 2)

G2antt1->BeginUpdate();
G2antt1->HeaderSingleLine = false;
G2antt1->HeaderHeight = 36;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->ColumnAutoResize = false;
G2antt1->ScrollBySingleLine = true;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Single-Line (exCaptionSingleLine)");
		var_Column->Width = 96;
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellSingleLine,TVariant(-1));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Word-Wrap (exCaptionWordWrap)");
		var_Column1->Width = 96;
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellSingleLine,TVariant(0));
		var_Column1->FormatColumn = L"%0";
	Exg2anttlib_tlb::IColumnPtr var_Column2 = var_Columns->Add(L"Break-Wrap (exCaptionBreakWrap)");
		var_Column2->Width = 96;
		var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
		var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellSingleLine,TVariant(1));
		var_Column2->FormatColumn = L"%0";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line."));
	var_Items->AddItem(TVariant("This is the <b>first</b> line.\\r\\nThis is the <b>second</b> line.\\r\\nThis is the <b>third</b> line."));
G2antt1->EndUpdate();

2061
Type of wraps the cell's caption support (Sample 1)

G2antt1->BeginUpdate();
G2antt1->HeaderSingleLine = false;
G2antt1->HeaderHeight = 36;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->ColumnAutoResize = false;
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Default")->Width = 128;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line."));
	h = var_Items->AddItem(TVariant("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line."));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(0),Exg2anttlib_tlb::ValueFormatEnum::exHTML);
	h = var_Items->AddItem(TVariant("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line."));
	var_Items->set_CellSingleLine(TVariant(h),TVariant(0),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
	h = var_Items->AddItem(TVariant("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line."));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(0),Exg2anttlib_tlb::ValueFormatEnum::exHTML);
	var_Items->set_CellSingleLine(TVariant(h),TVariant(0),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
	h = var_Items->AddItem(TVariant("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line."));
	var_Items->set_CellSingleLine(TVariant(h),TVariant(0),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionBreakWrap);
	h = var_Items->AddItem(TVariant("This is the <b>first</b> line.<br>This is the <b>second</b> line.<br>This is the <b>third</b> line."));
	var_Items->set_CellValueFormat(TVariant(h),TVariant(0),Exg2anttlib_tlb::ValueFormatEnum::exHTML);
	var_Items->set_CellSingleLine(TVariant(h),TVariant(0),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionBreakWrap);
G2antt1->EndUpdate();

2060
Can I break the cell's caption using the line break <br> or \r\n (Sample 2)

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->ColumnAutoResize = false;
G2antt1->ScrollBySingleLine = true;
G2antt1->Columns->Add(L"Default")->Width = 128;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellSingleLine(TVariant(var_Items->AddItem(TVariant("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line."))),TVariant(0),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionBreakWrap);
	var_Items->AddItem(TVariant("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line."));
G2antt1->EndUpdate();

2059
Can I break the cell's caption using the line break <br> or \r\n (Sample 1)

G2antt1->BeginUpdate();
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->ColumnAutoResize = false;
G2antt1->ScrollBySingleLine = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->Width = 128;
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellSingleLine,TVariant(1));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line."));
	var_Items->AddItem(TVariant("This is the first line.\\r\\nThis is the second line.\\r\\nThis is the third line."));
G2antt1->EndUpdate();

2058
The histogram is showing empty space, when expanding an item. What could be wrong

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exGroupLinesOutside;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
	var_Chart->HistogramVisible = true;
	var_Chart->HistogramHeight = 48;
	var_Chart->HistogramView = Exg2anttlib_tlb::HistogramViewEnum::exHistogramNoGrouping | Exg2anttlib_tlb::HistogramViewEnum::exHistogramLeafItems | Exg2anttlib_tlb::HistogramViewEnum::exHistogramAllItems;
	var_Chart->Bars->get_Item(TVariant("Task"))->HistogramPattern = Exg2anttlib_tlb::PatternEnum::exPatternBDiagonal;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Project 1"));
	var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TNoParam(),TNoParam());
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Project 2"));
	var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2001,1,7).operator double()),TVariant(TDateTime(2001,1,10).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->InsertItem(h,TNoParam(),TVariant("Item 2")),TVariant("Task"),TVariant(TDateTime(2001,1,6).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

2057
How can I change the visual appearance/color of the Filter For ... field

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->BackColorHeader = RGB(1,0,0);
G2antt1->ForeColorHeader = RGB(255,255,255);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exBackColorFilter] = G2antt1->BackColorHeader;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exForeColorFilter] = G2antt1->ForeColorHeader;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exHeaderFilterBarButton] = RGB(240,240,240);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exCursorHoverColumn] = -1;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Bump;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Items");
	var_Column->FilterOnType = true;
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exNoItems;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
G2antt1->EndUpdate();

2056
How can I display the cell's caption without spaces on both sides

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
	var_Column->FormatColumn = L"((trim(value) replace `   ` with ` `) replace `  ` with ` `) replace ` ` with `<bgcolor=FF0000> </bgcolor>`";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("    Item B"));
	var_Items->AddItem(TVariant("        Item   C    "));
G2antt1->EndUpdate();

2055
How can I highlight the spaces within the column (sample 2)

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
	var_Column->FormatColumn = L"`'` + ( value replace ` ` with `_` ) + `'`";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("    Item B"));
	var_Items->AddItem(TVariant("        Item   C    "));
G2antt1->EndUpdate();

2054
How can I highlight the spaces within the column (sample 1)

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
	var_Column->FormatColumn = L"len(value) = 0 ? `<bgcolor=FF0000> </bgcolor>` : ( value replace ` ` with `<bgcolor=FF0000> </bgcolor>` )";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("    Item B"));
	var_Items->AddItem(TVariant("        Item   C    "));
G2antt1->EndUpdate();

2053
How can I change the visual aspect of the drop down filter-calendar

G2antt1->BeginUpdate();
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exBackColorFilter] = RGB(0,0,1);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exForeColorFilter] = RGB(255,255,255);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exDateScrollRange] = RGB(255,255,255);
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exDateHeader] = G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exBackColorFilter];
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exDateScrollThumb] = RGB(128,128,128);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Date");
	var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exDate;
	var_Column->DisplayFilterButton = true;
	var_Column->DisplayFilterDate = true;
	var_Column->DisplayFilterPattern = false;
G2antt1->EndUpdate();

2052
How can I scroll the chart to ensure that a bar fits the chart's client area

// ButtonClick event - Occurs when user clicks on the cell's button.
void __fastcall TForm1::G2antt1ButtonClick(TObject *Sender,Exg2anttlib_tlb::HITEM   Item,long   ColIndex,Variant   Key)
{
	TVariant kBar = TVariant(G2antt1->Items->get_FirstItemBar(Item));
	TVariant dStart = TVariant(G2antt1->Items->get_ItemBar(Item,TVariant(kBar),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarStart));
	TVariant dEnd = TVariant(G2antt1->Items->get_ItemBar(Item,TVariant(kBar),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarEnd));
	TVariant dScroll = TVariant(G2antt1->FormatABC(L"(A+B)/2",TVariant(dStart),TVariant(dEnd),TNoParam()));
	G2antt1->Chart->ScrollTo(dScroll,TVariant(1));
}

G2antt1->BeginUpdate();
G2antt1->ShowFocusRect = false;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesDot4;
G2antt1->SelBackMode = Exg2anttlib_tlb::BackModeEnum::exTransparent;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->OverviewVisible = Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowDateTimeScaleBottom | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewAllowVerticalScroll | Exg2anttlib_tlb::OverviewVisibleEnum::exOverviewShowAllVisible;
	var_Chart->OverviewHeight = 26;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2011,6,8).operator double()));
	var_Chart->AdjustLevelsToBase = true;
	var_Chart->set_PaneWidth(false,64);
	var_Chart->UnitWidth = 14;
	var_Chart->LevelCount = 2;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesDot4;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->ColumnsFormatLevel = L"\"\":2,(\"\"/14;1/\"\"):14";
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Default");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasButton,TVariant(true));
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellBackColor,TVariant(15790320));
		var_Column->Visible = false;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("Task"),TVariant(TDateTime(2011,6,9).operator double()),TVariant(TDateTime(2011,6,17).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2012,1,10).operator double()),TVariant(TDateTime(2012,1,17).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T3")),TVariant("Task"),TVariant(TDateTime(2013,2,19).operator double()),TVariant(TDateTime(2013,2,23).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T4")),TVariant("Task"),TVariant(TDateTime(2014,12,19).operator double()),TVariant(TDateTime(2014,12,23).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

2051
Is it possible to hide completely the list portion

G2antt1->BeginUpdate();
G2antt1->HeaderHeight = 32;
G2antt1->OnResizeControl = Exg2anttlib_tlb::OnResizeControlEnum::exDisableSplitter | Exg2anttlib_tlb::OnResizeControlEnum::exResizeChart;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%CS0 = 1",TNoParam());
	var_ConditionalFormat->ApplyToBars = L"Task";
	var_ConditionalFormat->BarColor = RGB(255,0,0);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2011,6,8).operator double()));
	var_Chart->AdjustLevelsToBase = true;
	var_Chart->set_PaneWidth(false,0);
	var_Chart->LevelCount = 2;
	var_Chart->AllowInsideZoom = true;
	Exg2anttlib_tlb::ILevelPtr var_Level = var_Chart->get_Level(0);
		var_Level->Alignment = Exg2anttlib_tlb::AlignmentEnum::CenterAlignment;
		var_Level->set_Label(TVariant("<b><%d%>-<%mmm%>-<%yyyy%>"));
		var_Level->Unit = Exg2anttlib_tlb::UnitEnum::exDay;
	Exg2anttlib_tlb::ILevelPtr var_Level1 = var_Chart->get_Level(1);
		var_Level1->set_Label(TVariant("<%h%>"));
		var_Level1->Count = 8;
		var_Level1->Unit = Exg2anttlib_tlb::UnitEnum::exHour;
		var_Level1->FormatLabel = TVariant(String("date(int(dvalue)) case (#06/08/2011# : (int(value) case ( 0 : 'Shift <b>1</b><br>23/20'; 8 : 'Shift <b>2</b><br>38/30' ; 16 : '") +
"Shift <b>3</b><br>24/24' ) ) ; #06/09/2011# : (int(value) case ( 0 : 'Shift <b>1</b><br>15/20'; 8 : 'Shift <b>2</b><br>30/32' ; " +
"16 : 'Shift <b>3</b><br>26/24' ) ) )");
	var_Chart->UnitWidth = 64;
	var_Chart->NonworkingDays = 0;
	var_Chart->ColumnsFormatLevel = L"0";
	var_Chart->AllowInsideZoom = true;
	var_Chart->DefaultInsideZoomFormat->InsideUnit = Exg2anttlib_tlb::UnitEnum::exMinute;
	var_Chart->AllowResizeInsideZoom = false;
	var_Chart->InsideZoomOnDblClick = false;
	Exg2anttlib_tlb::IInsideZoomsPtr var_InsideZooms = var_Chart->InsideZooms;
		var_InsideZooms->SplitBaseLevel = false;
		var_InsideZooms->DefaultWidth = 0;
	Exg2anttlib_tlb::IInsideZoomsPtr var_InsideZooms1 = var_Chart->InsideZooms;
		var_InsideZooms1->Add(TVariant(TDateTime(2011,6,9,8,00,00,0).operator double()));
		var_InsideZooms1->Add(TVariant(TDateTime(2011,6,9,16,00,00,0).operator double()));
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesDot4;
G2antt1->Columns->Add(L"Defaul")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("Task"),TVariant(TDateTime(2011,6,8,8,00,00,0).operator double()),TVariant(TDateTime(2011,6,10).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2011,6,8,16,00,00,0).operator double()),TVariant(TDateTime(2011,6,10,8,00,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T3")),TVariant("Task"),TVariant(TDateTime(2011,6,9).operator double()),TVariant(TDateTime(2011,6,10).operator double()),TNoParam(),TNoParam());
	var_Items->set_CellState(TVariant(var_Items->get_ItemByIndex(1)),TVariant(0),1);
G2antt1->EndUpdate();

2050
How can I find out what exBarWorkingCount represents

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks");
	var_Column->AllowSizing = false;
	var_Column->Width = 42;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Format");
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(258));
	var_Column1->FormatColumn = TVariant(String("trim((1:=int((0:=value)/365) ? =:1 + ` year(s) ` : ``)  + (1:=int((0:=(=:0 - (=:1*365)))/31) ? =:1 + ` month(s) ` : ``) + (1:=i") +
"nt((0:=(=:0 - (=:1*31)))/7) ? =:1 + ` week(s) ` : ``) + (1:=int((0:=(=:0 - (=:1*7)))/1) ? =:1 + ` day(s) ` : ``) + (1:=int((0:=(" +
"=:0 - =:1 + 1/24/60/60/2))*24) ? =:1 + ` hour(s) ` : ``) + (1:=int((0:=(=:0*24 - =:1))*60) ? =:1 + ` min(s) ` : ``) + (1:=int((0" +
":=(=:0*60 - =:1))*60) ? =:1 + ` sec(s)` : ``))");
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Value");
	var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(258));
	var_Column2->SortType = Exg2anttlib_tlb::SortTypeEnum::SortNumeric;
	var_Column2->Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::EditType;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
G2antt1->SelBackColor = RGB(204,232,255);
G2antt1->SelForeColor = RGB(0,0,0);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,4,6).operator double()));
	var_Chart->set_PaneWidth(false,256);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->NonworkingHours = 15728767;
	var_Chart->ShowNonworkingDates = false;
	var_Chart->ShowNonworkingUnits = false;
	var_Chart->ShowNonworkingHours = false;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarKeepWorkingCount,TVariant(true));
	var_Chart->AllowLinkBars = false;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
	var_Chart->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
	var_Chart->get_Level(0)->DrawGridLines = true;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exMinute;
	var_Chart->ResizeUnitCount = 15;
	var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exMinute,TVariant(String("<|><%nn%><|><%h%>:<%nn%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, '<%yy%> <%h%>:<%nn%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%> ") +
"<%h%>:<%nn%> <%AM/PM%><||>15"));
	var_Chart->AllowZoomOnFly = Exg2anttlib_tlb::ZoomOnFlyEnum::exZoomOnFlyIncludeNeighborItems | Exg2anttlib_tlb::ZoomOnFlyEnum::exZoomOnFly;
	var_Chart->BackColorZoomOnFly = RGB(255,255,0);
G2antt1->Items->AllowCellValueToItemBar = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant(""));
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
	var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("Task"),TVariant(TDateTime(2009,4,6,10,00,00,0).operator double()),TVariant(TDateTime(2009,4,6,13,00,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2009,4,6,10,00,00,0).operator double()),TVariant(TDateTime(2009,4,6,16,00,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T3")),TVariant("Task"),TVariant(TDateTime(2009,4,6,10,00,00,0).operator double()),TVariant(TDateTime(2009,4,6,19,00,00,0).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant(""));
	var_Items->set_SelectableItem(h,false);
	var_Items->set_SortableItem(h,false);
G2antt1->EndUpdate();

2049
How can I hide the filter bar description

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Filter");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column->Filter = L"B";
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("A"));
	var_Items->AddItem(TVariant("B"));
	var_Items->AddItem(TVariant("C"));
G2antt1->ApplyFilter();
G2antt1->FilterBarHeight = 0;
G2antt1->EndUpdate();

2048
How can I add a break bar

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks");
	var_Column->AllowSizing = false;
	var_Column->Width = 42;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Working");
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(258));
	var_Column1->FormatColumn = TVariant(String("((1:=int(0:= (value))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0 ") +
"? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')");
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
G2antt1->SelBackColor = RGB(204,232,255);
G2antt1->SelForeColor = RGB(0,0,0);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,4,6).operator double()));
	var_Chart->set_PaneWidth(false,164);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->NonworkingHours = 15728767;
	var_Chart->ShowNonworkingDates = false;
	var_Chart->ShowNonworkingUnits = false;
	var_Chart->ShowNonworkingHours = false;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Add(L"Task:Split");
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarKeepWorkingCount,TVariant(true));
		var_Bar->Shortcut = L"Task";
	var_Chart->AllowLinkBars = false;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
	var_Chart->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
	var_Chart->get_Level(0)->DrawGridLines = true;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exMinute;
	var_Chart->ResizeUnitCount = 15;
	var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exMinute,TVariant(String("<|><%nn%><|><%h%>:<%nn%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, '<%yy%> <%h%>:<%nn%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%> ") +
"<%h%>:<%nn%> <%AM/PM%><||>15"));
	var_Chart->AllowZoomOnFly = Exg2anttlib_tlb::ZoomOnFlyEnum::exZoomOnFlyIncludeNeighborItems | Exg2anttlib_tlb::ZoomOnFlyEnum::exZoomOnFly;
	var_Chart->BackColorZoomOnFly = RGB(255,255,0);
	var_Chart->AllowNonworkingBars = true;
G2antt1->Items->AllowCellValueToItemBar = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	long h = var_Items->AddItem(TVariant("T1"));
	var_Items->set_ItemNonworkingUnits(h,TVariant(false),L"(weekday(value) in (0,6)) or (timeF(value) < `07:00:00`) or (timeF(value) >= `20:00:00`) ");
	var_Items->AddBar(h,TVariant(""),TVariant(TDateTime(2009,4,6,7,30,00,0).operator double()),TVariant(TDateTime(2009,4,6,9,30,00,0).operator double()),TVariant("A"),TVariant("<c><font ;4>break<br>bar"));
	var_Items->set_ItemBar(h,TVariant("A"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarTreatAsNonworking,TVariant(true));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2009,4,6,10,00,00,0).operator double()),TVariant(TDateTime(2009,4,6,12,00,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2009,4,6,10,00,00,0).operator double()),TVariant(TDateTime(2009,4,6,17,45,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddItem(TVariant(""));
G2antt1->EndUpdate();

2047
It seems the ResizeUnitCount have no effect on the ZoomOnFly feature, is it normal

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks");
	var_Column->AllowSizing = false;
	var_Column->Width = 42;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Working");
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(258));
	var_Column1->FormatColumn = TVariant(String("((1:=int(0:= (value))) != 0 ? (=:1 + ' day(s)') : '') + (=:1 ? ' ' : '' ) + ((1:=int(0:=((=:0 - =:1 + 1/24/60/60/2)*24))) != 0 ") +
"? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')");
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
G2antt1->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
G2antt1->SelBackColor = RGB(204,232,255);
G2antt1->SelForeColor = RGB(0,0,0);
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->SelBackColor = G2antt1->SelBackColor;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,4,6).operator double()));
	var_Chart->set_PaneWidth(false,164);
	var_Chart->LevelCount = 2;
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->NonworkingHours = 15728767;
	var_Chart->ShowNonworkingDates = false;
	var_Chart->ShowNonworkingUnits = false;
	var_Chart->ShowNonworkingHours = false;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarKeepWorkingCount,TVariant(true));
	var_Chart->AllowLinkBars = false;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exRowLines;
	var_Chart->GridLineStyle = Exg2anttlib_tlb::GridLinesStyleEnum::exGridLinesSolid;
	var_Chart->get_Level(0)->DrawGridLines = true;
	var_Chart->ResizeUnitScale = Exg2anttlib_tlb::UnitEnum::exMinute;
	var_Chart->ResizeUnitCount = 15;
	var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exMinute,TVariant(String("<|><%nn%><|><%h%>:<%nn%> <%AM/PM%><|><%d3%>, <%m3%> <%d%>, '<%yy%> <%h%>:<%nn%> <%AM/PM%><|><%dddd%>, <%mmmm%> <%d%>, <%yyyy%> ") +
"<%h%>:<%nn%> <%AM/PM%><||>15"));
	var_Chart->AllowZoomOnFly = Exg2anttlib_tlb::ZoomOnFlyEnum::exZoomOnFlyIncludeNeighborItems | Exg2anttlib_tlb::ZoomOnFlyEnum::exZoomOnFly;
	var_Chart->BackColorZoomOnFly = RGB(255,255,0);
G2antt1->Items->AllowCellValueToItemBar = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant(""));
	var_Items->AddBar(var_Items->AddItem(TVariant("T1")),TVariant("Task"),TVariant(TDateTime(2009,4,6,10,00,00,0).operator double()),TVariant(TDateTime(2009,4,6,12,00,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("T2")),TVariant("Task"),TVariant(TDateTime(2009,4,6,10,00,00,0).operator double()),TVariant(TDateTime(2009,4,6,17,45,00,0).operator double()),TNoParam(),TNoParam());
	var_Items->AddItem(TVariant(""));
G2antt1->EndUpdate();

2046
Export Data in HTML format

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemBold(Item,true);
		var_Items->AddBar(Item,TVariant("Summary"),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(2))),TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(4))),TNoParam(),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant(""),-3,TVariant(""));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		long i = var_Items->get_ItemToIndex(Item);
		var_Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2008,1,2).operator double()),TVariant(TDateTime(2008,1,9).operator double()),TVariant(""),TNoParam());
		var_Items->set_ItemBar(Item,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarMove,TVariant(i));
		var_Items->set_ItemBar(Item,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarDuration,TVariant(i));
}

G2antt1->BeginUpdate();
G2antt1->BackColorAlternate = RGB(240,240,240);
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = TVariant(String("(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace ") +
"`[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matc" +
"hitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcou" +
"nt + ` item(s)`) )))");
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCompact | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarShowCloseIfRequired | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarSingleLine | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
G2antt1->FilterBarPromptType = Exg2anttlib_tlb::FilterPromptEnum::exFilterPromptContainsAny;
G2antt1->SingleSort = false;
G2antt1->AllowGroupBy = true;
G2antt1->BackColorSortBar = G2antt1->BackColor;
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABOUGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCMQwAFBIbhrE4ZBjHGQRUgyI43RhHUBzV") +
"IUBxDEaTZLlEYJBgeHYhDJPcaUVDcWQHGyeZwjSgpKoWSJIU5NcggPDgEwTKCmKlTAKoSzJMyEmwWRAdVTZLSEaxierKPhyWT/XgAF4PfDFKRXFqXY5mKZJFqKOI8TxI" +
"NgxPQMGyrBqraLqKwQGrGCQKSBhUZ3dS2JR3OSlYRuQAMVgOXoDZhPWZXbDtSzPE63NgtOR5DiGWalABoeoxRa9cz3ViCJSrGTqIoINIzZLHFQbPpdAYdP6BeIjXhhZx" +
"BBuLZXmEOh9CcNoni2N4MjWVodh+DpfBeLJinsWR9AyYwVAkGBhEAFphGiRogDEGBamkFgtjcZgHiMbgehYaQhAIEIREAaQYkcQZUHIGRUGQDBOEaBAhDYDxGkMZAkCg" +
"eoagYZAYEYAYIAWGhemICIFj8WIiCiFR5gkIhogmBoKGKJx2C6C5hniMgggqYwog0UoNGMZJiDiCZRgOLY0ECUAQICA=="));
	var_Appearance->RenderType = -268435456;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
	var_Chart->set_PaneWidth(false,196);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2008,1,1).operator double()));
	var_Chart->FirstWeekDay = Exg2anttlib_tlb::WeekDayEnum::exMonday;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->StartShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty;
		var_Bar->EndShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolid;
		var_Bar->Color = 0x1808080;
		var_Bar->Height = 7;
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%513%>"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=(%2-%1) in (3,5) ? %513 : `` %>"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"(%2 - %1) = 3",TVariant("K3"));
	var_ConditionalFormat->ForeColor = RGB(255,0,0);
	var_ConditionalFormat->BarColor = var_ConditionalFormat->ForeColor;
	var_ConditionalFormat->ApplyToBars = L"Task";
Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = G2antt1->ConditionalFormats->Add(L"(%2 - %1) = 5",TVariant("K5"));
	var_ConditionalFormat1->ForeColor = RGB(0,255,0);
	var_ConditionalFormat1->BarColor = var_ConditionalFormat1->ForeColor;
	var_ConditionalFormat1->ApplyToBars = L"Task";
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Tasks")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Start");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarKey,TVariant(""));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"End");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarKey,TVariant(""));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AllowCellValueToItemBar = true;
	var_Items->AddItem(TVariant("Task A"));
	var_Items->AddItem(TVariant("Task A"));
	var_Items->AddItem(TVariant("Task A"));
	var_Items->AddItem(TVariant("Task A"));
	var_Items->AddItem(TVariant("Task B"));
	var_Items->AddItem(TVariant("Task B"));
	var_Items->AddItem(TVariant("Task B"));
	var_Items->AddItem(TVariant("Task C"));
G2antt1->Columns->get_Item(TVariant("Tasks"))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->EndUpdate();
String sFile = "c:/temp/export.html";
G2antt1->Export(TVariant(sFile),TVariant("vis"));
/*
	Select the Component\Import Component...\Import a Type Library,
	to import the following Type Library:

		Microsoft Internet Controls

	TypeLib: ieframe.dll

	to define the namespace: Shdocvw_tlb
*/
//#include "SHDOCVW_TLB.h"
Shdocvw_tlb::IWebBrowser2Ptr var_ShellBrowserWindow = Variant::CreateObject(L"InternetExplorer.Application");
	var_ShellBrowserWindow->Navigate2(sFile,TNoParam(),TNoParam(),TNoParam(),TNoParam());

2045
Export Data in CSV format

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		long i = var_Items->get_ItemToIndex(Item);
		var_Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2008,1,2).operator double()),TVariant(TDateTime(2008,1,9).operator double()),TVariant(""),TNoParam());
		var_Items->set_ItemBar(Item,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarMove,TVariant(i));
		var_Items->set_ItemBar(Item,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarDuration,TVariant(i));
}

G2antt1->BeginUpdate();
G2antt1->BackColorAlternate = RGB(240,240,240);
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exAllLines;
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = TVariant(String("(( ( value replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace ") +
"`[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matc" +
"hitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcou" +
"nt + ` item(s)`) )))");
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCompact | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarShowCloseIfRequired | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarSingleLine | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
G2antt1->FilterBarPromptType = Exg2anttlib_tlb::FilterPromptEnum::exFilterPromptContainsAny;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,196);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2008,1,1).operator double()));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=(%2-%1) in (3,5) ? %513 : `` %>"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"(%2 - %1) = 3",TVariant("K3"));
	var_ConditionalFormat->ForeColor = RGB(255,0,0);
	var_ConditionalFormat->BarColor = var_ConditionalFormat->ForeColor;
	var_ConditionalFormat->ApplyToBars = L"Task";
Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat1 = G2antt1->ConditionalFormats->Add(L"(%2 - %1) = 5",TVariant("K5"));
	var_ConditionalFormat1->ForeColor = RGB(0,255,0);
	var_ConditionalFormat1->BarColor = var_ConditionalFormat1->ForeColor;
	var_ConditionalFormat1->ApplyToBars = L"Task";
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Tasks")->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Start");
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(1));
		var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarKey,TVariant(""));
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"End");
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(2));
		var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarKey,TVariant(""));
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AllowCellValueToItemBar = true;
	var_Items->AddItem(TVariant("Task A"));
	var_Items->AddItem(TVariant("Task A"));
	var_Items->AddItem(TVariant("Task A"));
	var_Items->AddItem(TVariant("Task A"));
	var_Items->AddItem(TVariant("Task B"));
	var_Items->AddItem(TVariant("Task B"));
	var_Items->AddItem(TVariant("Task B"));
	var_Items->AddItem(TVariant("Task C"));
G2antt1->EndUpdate();
OutputDebugString( PChar(G2antt1->Export(TVariant(""),TVariant("vis"))) );

2044
I want to be able to detect when a user clicks on a row in the chart that is not populated

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long item = G2antt1->ItemFromPoint[-1,-1,col,hit];
	Date date = G2antt1->Chart->get_DateFromPoint(-1,-1);
	TVariant sMessage = TVariant(G2antt1->FormatABC(L"(not(A = 0) ? `chart` : `list`) + ` ` + (not(B = 0) ? `item` : `empty`)  ",TVariant(date),TVariant(item),TNoParam()));
	OutputDebugString( L"sMessage" );
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_PaneWidth(false,128);
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2018,1,1).operator double()));
G2antt1->Columns->Add(L"Tasks");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 1")),TVariant("Task"),TVariant(TDateTime(2018,1,2).operator double()),TVariant(TDateTime(2018,1,12).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 2")),TVariant("Task"),TVariant(TDateTime(2018,1,3).operator double()),TVariant(TDateTime(2018,1,13).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Task 3")),TVariant("Task"),TVariant(TDateTime(2018,1,4).operator double()),TVariant(TDateTime(2018,1,14).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

2043
Is it possible to have multiple calendars. A calendar for each row for example. Reason : some of our lines work 2 shifts but some also have a night shift

G2antt1->BeginUpdate();
G2antt1->Columns->Add(L"Tasks");
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Working");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(258));
	var_Column->FormatColumn = TVariant(String("((1:=int(0:=( 24*int(value) + (value - int(value) + 1/24/60/60/2)*24))) != 0 ? =:1 + ' hour(s)' : '' ) + (=:1 ? ' ' : '' ) + ((") +
"1:=round((=:0 - =:1)*60)) != 0 ? =:1 + ' min(s)' : '')");
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2009,4,6).operator double()));
	var_Chart->set_PaneWidth(false,148);
	var_Chart->LevelCount = 2;
	var_Chart->ShowNonworkingUnits = false;
	var_Chart->ShowNonworkingDates = false;
	Exg2anttlib_tlb::IBarsPtr var_Bars = var_Chart->Bars;
		var_Bars->Add(L"Task:Split")->Shortcut = L"Task";
		var_Bars->get_Item(TVariant("Task"))->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarKeepWorkingCount,TVariant(true));
	var_Chart->set_Label(Exg2anttlib_tlb::UnitEnum::exHour,L"<%h%><||><||>65536");
	var_Chart->get_Level(0)->FormatLabel = L"`<font small fonts;6>` + value";
	var_Chart->get_Level(1)->FormatLabel = TVariant(String("len(value) = 2 ? (`<font small fonts;4>` + (value left 1) + `<br>` + (value right 1) ) : (`<font small fonts;4>` + ` <br>` + (v") +
"alue left 1) + `` )");
	var_Chart->UnitScale = Exg2anttlib_tlb::UnitEnum::exHour;
	var_Chart->UnitWidth = 9;
G2antt1->Items->AllowCellValueToItemBar = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	String sCalendar1 = "weekday(value) in (0,6) or (hour(value) < 6) or (hour(value) > 18)";
	long h = var_Items->AddItem(TVariant("Shift 1"));
	var_Items->set_ItemNonworkingUnits(h,TVariant(false),L"sCalendar1");
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2009,4,6).operator double()),TVariant(TDateTime(2009,4,7).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant("Shift 1"));
	var_Items->set_ItemNonworkingUnits(h,TVariant(false),L"sCalendar1");
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2009,4,6).operator double()),TVariant(TDateTime(2009,4,8).operator double()),TNoParam(),TNoParam());
	String sCalendar2 = "weekday(value) in (0,6) or (hour(value) < 8) or (hour(value) > 14)";
	h = var_Items->AddItem(TVariant("Shift 2"));
	var_Items->set_ItemNonworkingUnits(h,TVariant(false),L"sCalendar2");
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2009,4,6).operator double()),TVariant(TDateTime(2009,4,7).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant("Shift 2"));
	var_Items->set_ItemNonworkingUnits(h,TVariant(false),L"sCalendar2");
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2009,4,6).operator double()),TVariant(TDateTime(2009,4,8).operator double()),TNoParam(),TNoParam());
	String sCalendar3 = "weekday(value) in (0,6) or 0 = ( hour(value) mod 3 ) ";
	h = var_Items->AddItem(TVariant("Shift 3"));
	var_Items->set_ItemNonworkingUnits(h,TVariant(false),L"sCalendar3");
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2009,4,6).operator double()),TVariant(TDateTime(2009,4,7).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant("Shift 3"));
	var_Items->set_ItemNonworkingUnits(h,TVariant(false),L"sCalendar3");
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2009,4,6).operator double()),TVariant(TDateTime(2009,4,8).operator double()),TNoParam(),TNoParam());
	String sCalendar4 = "weekday(value) in (0,6)";
	h = var_Items->AddItem(TVariant("Shift 3"));
	var_Items->set_ItemNonworkingUnits(h,TVariant(false),L"sCalendar4");
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2009,4,6).operator double()),TVariant(TDateTime(2009,4,7).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant("Shift 3"));
	var_Items->set_ItemNonworkingUnits(h,TVariant(false),L"sCalendar4");
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2009,4,6).operator double()),TVariant(TDateTime(2009,4,8).operator double()),TNoParam(),TNoParam());
G2antt1->EndUpdate();

2042
Is it possible to check multiple-items at once

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	TVariant bHasParent = TVariant(G2antt1->FormatABC(L"value != 0",G2antt1->Items->get_ItemParent(Item),TNoParam(),TNoParam()));
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_CellHasCheckBox(TVariant(Item),TVariant(0),false);
}

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Tasks");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueFormat,TVariant(1));
	var_Column->FormatColumn = L"value + (%CS0 = 1 ? `<r><fgcolor=808080>(checked)` : ``)";
G2antt1->HeaderVisible = Exg2anttlib_tlb::HeaderVisibleEnum::exHeaderVisibleExtendLevels;
G2antt1->SingleSel = false;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Project"));
	long hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 1"));
	hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 2"));
	hChild = var_Items->InsertItem(h,TNoParam(),TVariant("Task 3"));
	var_Items->set_ExpandItem(h,true);
	var_Items->set_LockedItemCount(Exg2anttlib_tlb::VAlignmentEnum::exTop,1);
	var_Items->set_CellValue(TVariant(var_Items->get_LockedItem(Exg2anttlib_tlb::VAlignmentEnum::exTop,0)),TVariant(0),TVariant("<c>Select multiple items and press the <b>SPACE</b> key"));
G2antt1->EndUpdate();

2041
How can I prevent changing the start/end colors of the bar, when ItemBar(exBarColor) property is applied

G2antt1->BeginUpdate();
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
G2antt1->VisualAppearance->Add(1,TVariant("E:\\Exontrol\\ExButton\\sample\\EBN\\Assorted\\bhframe.ebn"));
G2antt1->Chart->set_PaneWidth(false,96);
Exg2anttlib_tlb::IBarsPtr var_Bars = G2antt1->Chart->Bars;
	var_Bars->AddShapeCorner(TVariant(12345),TVariant(1));
	var_Bars->AddShapeCorner(TVariant(999),TVariant(2));
	var_Bars->AddShapeCorner(TVariant(1049),TVariant(3));
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Bars->Add(L"T1");
		var_Bar->StartShape = Exg2anttlib_tlb::ShapeCornerEnum(0x3020 | Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconVBar | Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconRight);
		var_Bar->EndShape = Exg2anttlib_tlb::ShapeCornerEnum(0x3e0 | Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconLeft);
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternNDot;
		var_Bar->StartColor = RGB(0,255,0);
		var_Bar->Color = 0x1000000;
		var_Bar->EndColor = RGB(255,0,0);
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=`<font ;6>  ` + %0 + ``%>"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Bars->Add(L"T2");
		var_Bar1->StartShape = Exg2anttlib_tlb::ShapeCornerEnum(0x3020 | Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconVBar | Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconRight);
		var_Bar1->EndShape = Exg2anttlib_tlb::ShapeCornerEnum(0x400 | Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconVBar | Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconRight);
		var_Bar1->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternNDot;
		var_Bar1->StartColor = -1;
		var_Bar1->Color = 0x1000000;
		var_Bar1->EndColor = -1;
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=`<font ;6>  ` + %0 + ``%>"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
G2antt1->Chart->set_FirstVisibleDate(TVariant(TDateTime(2001,1,1).operator double()));
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(65280));
	h = var_Items->AddItem(TVariant("Item 3"));
	var_Items->AddBar(h,TVariant("T1"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
	h = var_Items->AddItem(TVariant("Item 4"));
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TNoParam(),TNoParam());
	h = var_Items->AddItem(TVariant("Item 5"));
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(65280));
	h = var_Items->AddItem(TVariant("Item 6"));
	var_Items->AddBar(h,TVariant("T2"),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TNoParam(),TNoParam());
	var_Items->set_ItemBar(h,TVariant(""),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarColor,TVariant(255));
G2antt1->EndUpdate();

2040
How can I get the icon from the cell when using the Items.CellImages property (icon index)

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long i = G2antt1->ItemFromPoint[-1,-1,c,hit];
	OutputDebugString( PChar(G2antt1->FormatABC(L"( 0x44 = ( value bitand 0x44 ) ) ? ( ( (value bitand 0xFFFF0000) bitshift 16 ) array B split `,` )  : `no image`",TVariant(hit),G2antt1->Items->get_CellImages(TVariant(i),TVariant(c)),TNoParam())) );
}

G2antt1->BeginUpdate();
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
G2antt1->Chart->set_PaneWidth(true,0);
G2antt1->Columns->Add(L"Default");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellImages(TVariant(var_Items->AddItem(TVariant("Item 1"))),TVariant(0),TVariant("3,2,1"));
	var_Items->set_CellImages(TVariant(var_Items->AddItem(TVariant("Item 2"))),TVariant(0),TVariant("2,3"));
	var_Items->set_CellImages(TVariant(var_Items->AddItem(TVariant("Item 3"))),TVariant(0),TVariant("2,"));
G2antt1->EndUpdate();

2039
How can I get the icon from the cell when using the Items.CellImages property (icon position within the cell)

// MouseMove event - Occurs when the user moves the mouse.
void __fastcall TForm1::G2antt1MouseMove(TObject *Sender,short   Button,short   Shift,int   X,int   Y)
{
	long i = G2antt1->ItemFromPoint[-1,-1,c,hit];
	OutputDebugString( PChar(G2antt1->FormatABC(L"( 0x44 = ( value bitand 0x44 ) ) ? 1 + ( (value bitand 0xFFFF0000) bitshift 16 ) : `no image`",TVariant(hit),TNoParam(),TNoParam())) );
}

G2antt1->BeginUpdate();
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
G2antt1->Chart->set_PaneWidth(true,0);
G2antt1->Columns->Add(L"Default");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellImages(TVariant(var_Items->AddItem(TVariant("Item 1"))),TVariant(0),TVariant("3,2,1"));
	var_Items->set_CellImages(TVariant(var_Items->AddItem(TVariant("Item 2"))),TVariant(0),TVariant("2,3"));
	var_Items->set_CellImages(TVariant(var_Items->AddItem(TVariant("Item 3"))),TVariant(0),TVariant("2"));
G2antt1->EndUpdate();

2038
I have an EBN bar. Now if I apply an additional color to the bar, e,g, yellow, the bar is displayed as "dark yellow", which I assume is due to the black EBN color. How can I get the more "bright yellow" color

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemDividerLine(Item,Exg2anttlib_tlb::DividerLineEnum::EmptyLine);
		var_Items->AddBar(Item,TVariant("Summary"),TVariant(TDateTime(2017,12,2).operator double()),TVariant(TDateTime(2017,12,2).operator double()),TNoParam(),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant(""),-3,TVariant(""));
		long l = var_Items->get_GroupItem(Item);
		var_Items->set_CellSingleLine(TVariant(Item),TVariant(l),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
		var_Items->set_CellBold(TVariant(Item),TVariant(l),true);
		var_Items->set_ItemBackColor(Item,RGB(190,190,190));
	G2antt1->Chart->set_ItemBackColor(Item,RGB(190,190,190));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,10).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABOUGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCMQwAFBIbhrE4ZBjHGQRUgyI43RhHUBzV") +
"IUBxDEaTZLlEYJBgeHYhDJPcaUVDcWQHGyeZwjSgpKoWSJIU5NcggPDgEwTKCmKlTAKoSzJMyEmwWRAdVTZLSEaxierKPhyWT/XgAF4PfDFKRXFqXY5mKZJFqKOI8TxI" +
"NgxPQMGyrBqraLqKwQGrGCQKSBhUZ3dS2JR3OSlYRuQAMVgOXoDZhPWZXbDtSzPE63NgtOR5DiGWalABoeoxRa9cz3ViCJSrGTqIoINIzZLHFQbPpdAYdP6BeIjXhhZx" +
"BBuLZXmEOh9CcNoni2N4MjWVodh+DpfBeLJinsWR9AyYwVAkGBhEAFphGiRogDEGBamkFgtjcZgHiMbgehYaQhAIEIREAaQYkcQZUHIGRUGQDBOEaBAhDYDxGkMZAkCg" +
"eoagYZAYEYAYIAWGhemICIFj8WIiCiFR5gkIhogmBoKGKJx2C6C5hniMgggqYwog0UoNGMZJiDiCZRgOLY0ECUAQICA=="));
	var_Appearance->RenderType = -268435456;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,342);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->StartShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty;
		var_Bar->EndShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolid;
		var_Bar->Color = 0x1ff0000;
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%513%>"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"C1");
	var_Columns->Add(L"C2");
	var_Columns->Add(L"C3");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos");
		var_Column->FormatColumn = L"1 pos ``";
		var_Column->AllowGroupBy = false;
		var_Column->Position = 0;
		var_Column->Width = 48;
		var_Column->AllowSizing = false;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column.";
G2antt1->AllowGroupBy = true;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exNoLinesAtRoot;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column1->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->EndUpdate();

2037
Is it possible to change the visual appearance of the position signs when user changes the column's position by drag and drop

G2antt1->BeginUpdate();
G2antt1->HeaderAppearance = Exg2anttlib_tlb::AppearanceEnum::Etched;
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"Column 1");
	var_Columns->Add(L"Column 2");
	var_Columns->Add(L"Column 3");
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABZEGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMYxXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADKMA4SOKIZhrE4bBhGaQRUgyI43RhHUBzV") +
"IUcQvE6TZRHCQYHgkNIhDJIM7TPLkeSVJaTIRoKhJUogApQThTMgVRDEThkGoSa6soSoYTDBKybLrSLKagOT5YUDKUqSdKEZRpEq1YztWbaQoCUoqVRRVIWfbNd4JJa4" +
"aDhWpYdpeeY5R7bWLgBYVVABL7LLRsSxpHxPF6RXxaeI3GKsaS8G6ic6nPQMHj7I4NS5pUa6Rh2VYNSa8AAtETRYznOw4bTMXAjNIea5bAYIIR5HIoDzVbQcCQAHL9DB" +
"eEMIQEEISgGhMGZQmocgymoYRRCIEQ0G2HYBnEIBig4V4zCQGINnmagCECY43medZ6H2Pw/g+X5fnueh/h+R5+AKABfkMWgGgGYA4AICoCGCE5WA4CphACMgSD2IRIDI" +
"BICmEd5YGCBpRjGBgegWIYIgWdgoGIRQsiKCZiAiJZ0gGQI4jUS4LECOAiBmDJflGfg2BSY4Al4OhGkOCJ2DgFJjGGfgqgiH5Ch4RhGkqOQmEOEpkFkHQYhJRYyESAok" +
"GKHhIhKIxJEmf4VGUeRGFmF5iBkchPhYJQ5GoYIZg6Ug6GoFYmkmNhuhulRGHKGoImefh0BUZ4JmYeoemeSZ2H6HQmgoBgXDqXwUAQgI="));
	var_Appearance->Add(2,TVariant("CP:1 0 -36 0 0"));
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exColumnsPositionSign] = 0x2000000;
G2antt1->EndUpdate();

2036
Overlaid-Types

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		TVariant barName = TVariant(var_Items->get_ItemData(Item));
		var_Items->AddBar(Item,TVariant(barName),TVariant(TDateTime(2001,1,2).operator double()),TVariant(TDateTime(2001,1,4).operator double()),TVariant("A1"),TNoParam());
		var_Items->AddBar(Item,TVariant(barName),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("A2"),TNoParam());
		var_Items->AddBar(Item,TVariant(barName),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("A3"),TNoParam());
		var_Items->AddBar(Item,TVariant(barName),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("A4"),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->DefaultItemHeight = 22;
G2antt1->Columns->Add(L"Task");
G2antt1->ScrollBySingleLine = true;
G2antt1->BackColorAlternate = RGB(240,240,240);
G2antt1->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->DrawGridLines = Exg2anttlib_tlb::GridLinesEnum::exHLines;
	var_Chart->ShowNonworkingDates = false;
	var_Chart->set_PaneWidth(false,164);
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2000,12,28).operator double()));
	var_Chart->LevelCount = 2;
	var_Chart->Bars->Copy(L"Task",L"Intersect")->Color = RGB(255,0,0);
	var_Chart->Bars->get_Item(TVariant("Task"))->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsNone;
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->Copy(L"Task",L"Task-Transparent");
		var_Bar->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsNone;
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarTransparent,TVariant(50));
		var_Bar->Pattern = Exg2anttlib_tlb::PatternEnum::exPatternBox;
		var_Bar->Color = RGB(0,0,0);
		var_Bar->StartColor = RGB(80,80,255);
		var_Bar->EndColor = var_Bar->StartColor;
	var_Chart->Bars->Copy(L"Task",L"Task-Offset")->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsOffset;
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Copy(L"Task",L"Task-OffsetTransparent");
		var_Bar1->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsTransparent | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsOffset;
		var_Bar1->set_Overlaid(Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsTransparent,TVariant(75));
	Exg2anttlib_tlb::IBarPtr var_Bar2 = var_Chart->Bars->Copy(L"Task",L"Task-Intersect");
		var_Bar2->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsIntersect;
		var_Bar2->set_Overlaid(Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsIntersect,TVariant("Intersect"));
	var_Chart->Bars->Copy(L"Task",L"Task-Stack")->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
	Exg2anttlib_tlb::IBarPtr var_Bar3 = var_Chart->Bars->Copy(L"Task",L"Task-StackAutoArrange");
		var_Bar3->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStackAutoArrange | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar3->Color = RGB(255,0,0);
		var_Bar3->OverlaidGroup = L"Task";
	Exg2anttlib_tlb::IBarPtr var_Bar4 = var_Chart->Bars->Copy(L"Task",L"Task-Cascade");
		var_Bar4->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsCascade;
		var_Bar4->Color = RGB(255,0,0);
		var_Bar4->OverlaidGroup = L"Task";
	Exg2anttlib_tlb::IBarPtr var_Bar5 = var_Chart->Bars->Copy(L"Task",L"Task-Strict");
		var_Bar5->OverlaidType = Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStrict | Exg2anttlib_tlb::OverlaidBarsTypeEnum::exOverlaidBarsStack;
		var_Bar5->OverlaidGroup = L"Task";
		var_Bar5->Color = RGB(255,0,0);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->InsertItem(0,TVariant("Task"),TVariant("Overlaid-None"));
	var_Items->InsertItem(0,TVariant("Task-Transparent"),TVariant("Overlaid-Semi-Transparent"));
	var_Items->InsertItem(0,TVariant("Task-Offset"),TVariant("Overlaid-Offset"));
	var_Items->InsertItem(0,TVariant("Task-OffsetTransparent"),TVariant("Overlaid-OffsetTransparent"));
	var_Items->InsertItem(0,TVariant("Task-Intersect"),TVariant("Overlaid-Intersect"));
	var_Items->InsertItem(0,TVariant("Task-Stack"),TVariant("Overlaid-Stack"));
	long h = var_Items->InsertItem(0,TVariant("Task-StackAutoArrange"),TVariant("Overlaid-StackAutoArrange"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,7).operator double()),TVariant(TDateTime(2001,1,9).operator double()),TVariant("T1"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("T2"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("T3"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("T4"),TNoParam());
	h = var_Items->InsertItem(0,TVariant("Task-Cascade"),TVariant("Overlaid-Cascade"));
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,7).operator double()),TVariant(TDateTime(2001,1,9).operator double()),TVariant("T1"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,3).operator double()),TVariant(TDateTime(2001,1,5).operator double()),TVariant("T2"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,4).operator double()),TVariant(TDateTime(2001,1,7).operator double()),TVariant("T3"),TNoParam());
	var_Items->AddBar(h,TVariant("Task"),TVariant(TDateTime(2001,1,5).operator double()),TVariant(TDateTime(2001,1,8).operator double()),TVariant("T4"),TNoParam());
	var_Items->set_ItemBar(h,TVariant("<A*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarOverlaidKey,TVariant("A"));
	var_Items->set_ItemBar(h,TVariant("<T*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarOverlaidKey,TVariant("T"));
	h = var_Items->InsertItem(0,TVariant("Task"),TVariant("Overlaid-StackStrict"));
	var_Items->AddBar(h,TVariant("Task-Strict"),TVariant(TDateTime(2001,1,7).operator double()),TVariant(TDateTime(2001,1,9).operator double()),TVariant("T1"),TNoParam());
	var_Items->set_ItemBar(0,TVariant("<*>"),Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%9%>"));
G2antt1->EndUpdate();

2035
FilterBarCaption ALLUI Keyword ( sample 3, result, leaf )

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemBackColor(Item,RGB(240,240,240));
		TVariant val = TVariant(var_Items->get_CellValue(TVariant(Item),TVariant(var_Items->get_GroupItem(Item))));
		var_Items->set_CellState(TVariant(Item),TVariant(var_Items->get_GroupItem(Item)),G2antt1->FormatABC(L"A = `Checked` ? 1 : 0",TVariant(val),TNoParam(),TNoParam()));
	Exg2anttlib_tlb::IItemsPtr var_Items1 = G2antt1->Items;
		var_Items1->set_ItemDividerLine(Item,Exg2anttlib_tlb::DividerLineEnum::EmptyLine);
		var_Items1->AddBar(Item,TVariant("Summary"),TVariant(TDateTime(2017,12,2).operator double()),TVariant(TDateTime(2017,12,2).operator double()),TNoParam(),TNoParam());
		var_Items1->DefineSummaryBars(Item,TVariant(""),-3,TVariant(""));
		long l = var_Items1->get_GroupItem(Item);
		var_Items1->set_CellSingleLine(TVariant(Item),TVariant(l),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
		var_Items1->set_CellBold(TVariant(Item),TVariant(l),true);
	G2antt1->Chart->set_ItemBackColor(Item,RGB(240,240,240));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	TVariant i = TVariant(G2antt1->FormatABC(L"value + 1",G2antt1->Items->get_ItemToIndex(Item),TNoParam(),TNoParam()));
	G2antt1->Items->set_CellImage(TVariant(Item),TVariant(3),i);
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABOUGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCMQwAFBIbhrE4ZBjHGQRUgyI43RhHUBzV") +
"IUBxDEaTZLlEYJBgeHYhDJPcaUVDcWQHGyeZwjSgpKoWSJIU5NcggPDgEwTKCmKlTAKoSzJMyEmwWRAdVTZLSEaxierKPhyWT/XgAF4PfDFKRXFqXY5mKZJFqKOI8TxI" +
"NgxPQMGyrBqraLqKwQGrGCQKSBhUZ3dS2JR3OSlYRuQAMVgOXoDZhPWZXbDtSzPE63NgtOR5DiGWalABoeoxRa9cz3ViCJSrGTqIoINIzZLHFQbPpdAYdP6BeIjXhhZx" +
"BBuLZXmEOh9CcNoni2N4MjWVodh+DpfBeLJinsWR9AyYwVAkGBhEAFphGiRogDEGBamkFgtjcZgHiMbgehYaQhAIEIREAaQYkcQZUHIGRUGQDBOEaBAhDYDxGkMZAkCg" +
"eoagYZAYEYAYIAWGhemICIFj8WIiCiFR5gkIhogmBoKGKJx2C6C5hniMgggqYwog0UoNGMZJiDiCZRgOLY0ECUAQICA=="));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->StartShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty;
		var_Bar->EndShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolid;
		var_Bar->Color = 0x1000000;
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%513%>"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Check");
	var_Column2->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column2->DisplayFilterButton = true;
	var_Column2->DisplayFilterPattern = false;
	var_Column2->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exCheck;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->Add(L"Image");
	var_Column3->DisplayFilterButton = true;
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exImage;
	var_Column3->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox;
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->Add(L"Pos");
	var_Column4->AllowSizing = false;
	var_Column4->AllowSort = false;
	var_Column4->Width = 32;
	var_Column4->FormatColumn = L"1 rpos ``";
	var_Column4->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	long h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellState(TVariant(h),TVariant(2),1);
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = TVariant(String("(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace ") +
"`[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matc" +
"hitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + leafitemcount + ` result(s)` ) : (`<r><fgcolor=808080>`+ leafitemcount + `" +
" item(s)`) )))");
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
G2antt1->AllowGroupBy = true;
G2antt1->SortBarVisible = true;
Exg2anttlib_tlb::IColumnPtr var_Column5 = G2antt1->Columns->get_Item(TVariant(2));
	var_Column5->FormatColumn = L"%CS2 ? `Checked` : `Unchecked`";
	var_Column5->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->EndUpdate();

2034
A black portion is shown while I am using the BackColorAlternate with EBN colors. What can I do

G2antt1->BeginUpdate();
G2antt1->ColumnAutoResize = true;
G2antt1->DefaultItemHeight = 20;
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhIDhAxHAxg0HG0Mg4xGI3HMOig3GcJiYAf8jAEhhUnAAyhEqg8hk0oAsIjgAiAwmYxGA4mYzGwwkI0i0ooUnB0IBMIl1Dg8zmYyGolptPkI1m") +
"Y1GAll9KoUslNIrVCqNQldShFUstXAVfrVcrlZtVhuFnsUHq1zoczoQGhFBkNpg6zbDykUkhsPHE2h85nc9n8xtVDtlex9Msd2p1YstVq9ux8HyMtzuFz1PsNTzQlv2h" +
"hWfkuqpeVuN0q+nvEooN5veSAGpkb/ACcZrvhU3w83nM/poxGuchGpoVBvWgg+8knA4WimnFxI45Er5XOlHMg/Q3XU33W4ew9Wyu11mchDagcO7zus8VDoNBBEIKBpMY" +
"6DqOQyokhA/IQIQmwMk4bIQFDcoO6LWgwhQkNcABwEyAB5GwWbet6cRQg3DENQ5D8QxADZvEkAB8nabsURGeBpFM3pwE2AEZRpDx/neZpOR3Dz9oO/r/wCMoZNTBQAQR" +
"JSEwYg8HPGhEIoNCaEwq10gQ2WcRt7LcRxRFpuxUAEURQ3sczBEMgTTG8gN7HpOSEAEiQBAQZpmQ0DibPUFwbKcHwkhQoQtNQNzNEMbABOKDy/DMYQzHLeoPL0OTJSUd" +
"0pHcxTewk5zrIygIRPslz4lEngBKIAQivgASs/kLSBTlO00f8t0vGcgUbDlDRjXLCUNRERRvRgAHW2oAICA=="));
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->PartialCheck = true;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Position");
	var_Column1->FormatColumn = L"1 rindex ``";
	var_Column1->Visible = false;
Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%C1 mod 2",TNoParam());
	var_ConditionalFormat->BackColor = 0x1000000;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item 1"));
	var_Items->AddItem(TVariant("Item 2"));
	var_Items->AddItem(TVariant("Item 3"));
	var_Items->AddItem(TVariant("Item 4"));
G2antt1->EndUpdate();

2033
How can I specify alternate background colors for each root item, similar with BackColorAlternate

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
	var_Column->PartialCheck = true;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Position");
	var_Column1->FormatColumn = L"( ( 1:=( ( 0:=(1 rpos '') ) lfind `.`) ) < 0 ? =:0 : (=:0 left =:1) )";
	var_Column1->Visible = false;
Exg2anttlib_tlb::IConditionalFormatPtr var_ConditionalFormat = G2antt1->ConditionalFormats->Add(L"%C1 mod 2",TNoParam());
	var_ConditionalFormat->BackColor = RGB(240,240,240);
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	h = var_Items->AddItem(TVariant("Root 3"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
G2antt1->EndUpdate();

2032
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 4)

G2antt1->BeginUpdate();
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->VisualDesign = TVariant(String("gBFLBWIgBAEHhEJAEGg6VAkHeLpgwChAOhULB8XAUUg8MAAREEHGMcgRCJ0ei8dhABDEcQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGc") +
"TSBCIZBqEqSZLiEZRQiiCYsS5GQBRWAkEwiBiEQTjea5CgOIAFS7LIqjRQEBxhIaZYIGaiQADENo9TxIMZAfBIHShK6NJABCCSQKkYx0HScRijDIEFwGIQmbKiej4DCi" +
"CQQW7OYYRVCNMQSfa8HivJyrcamfp/YBgOBYHb1eLVPR5LwfPCGUw1P6PLxkORZHimK4tSLHV7xVpMIwZFafIQhCCoHomS5NU7UNR0TQUFx9FaGX7rDDsGwLAJ6XRgF4" +
"bg2VpnHePpenAN4bH2GwHFmApSjEGBLnWOpRGOTBZHOegrE6BxPiWVJqCweQrn0LgJAWJBjwgaw1gKO5HmWch5h+fovF+G5bmich4BgfZkB8dynRUVYqiUR5rnmex/F6" +
"N4tn2AJfnebZ3DEXw3HWXgzAyIwgicKJKBKEIhCeCgiHyHYFEmSAFmqBghFIdgSCeIJygYDAyAgJx6AoIINAMOJNCgCZCGoGoLmMCI+CwJoihMNglCCIhzFCUg0EmMhg" +
"hWDBkAiQg9CUY4jEYN4Jk2IxklYJoJHIUg+CSZJSESFwkkkGI+FOFIJEIRhPhMCRJCSVoRrSBhiDgTZjHYT4PEkYhwhgJYm0SaIaiaSYuE+GQNlmCIBGCJxjhiZQ5AkM" +
"hAg6ExJCkPhPguaAiFYUAlAkKZ0g6HoOEmWR/GHcA4m0OwIlIJIHCRgQshGJhpjoaocieaZiC6GAimkUgehIOwnGYGYIGkah6jaE4rg6SpCjKK5rEOMYlGIGIihKOggl" +
"oFoqj6L5aGaBo6CkGIkAQjiPpCAAaJILCTJQlKPACDaXJgmSaJsnCdJ4nygKEoijKQpSmKcqCpKoqysK0rivLAsSyLMtC1LYty4Lkui7LwvS+L8wDBMIwzEMUxjHMgyT" +
"KMszDNM4zzQNE0jTNQ1TWNc2DZNo2zcN03jfOA4TiOM5DlOY5zoOk6jrOw7TuO88DxPI8z0PU9j3Pg+T6Ps/D9P4/0AQFAkDQRBUGQdCEJQpC0MQ1DkPRBEUSRNFEVBh" +
"FkXRhGQ9D6Dxfh+W5gGGd4QH2XQjCmDpFFaKoVB+D5Xmed5+H8YAHnIAh9EwV5Fl0d4MkMKJICmSgygSJAoEmMUCIPgnDCCIOQFYCxJjwFoCcA4kxoF+AIJkAgExegDE" +
"gEYQInAzCUAIOEGgfxiiRDYF1Q4EQ2BSCaEQYwbAiKREMpRSymFNDIAkAxT6oVRgSA2qdVKq1WqvVirMZQUhSCnBUMoIgoQRgnGSIQUgkg1hIHYAkAYMROAmHiLsE4xx" +
"SCxBwEwCQ0wmDdBsE0GYXBtg2CSPMFIuwYiQBYBQeAcwOCnBCCZgw0g0glBONAQgqQThCGgPQGoBQfiRGmOEZIPAXjsBoPAO4HRThhA0EQSA5BAgaCKJIGg3QdhOCmNU" +
"BoQAijTCIF0FwQxpCHDIPAYYMQGgtCmFcaQtRAjZCyFYSojQ2B2BoKwIYFApBXEIBsIQ1QsAWAWEwaA1xCgjAoIAQBAQ=");
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
G2antt1->EndUpdate();

2031
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 3)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(3,TVariant(String("gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQS") +
"BcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+Opf" +
"DxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4" +
"llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5Jlg" +
"XIcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIR" +
"gwZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOM" +
"INCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA="));
	var_Appearance->Add(1,TVariant("CP:3 -2 -2 2 2"));
	var_Appearance->Add(4,TVariant(String("gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQS") +
"BcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+Opf" +
"DxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4" +
"llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCE" +
"eBkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchO" +
"FSFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQO" +
"JtDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI="));
	var_Appearance->Add(2,TVariant("CP:4 -2 -2 2 2"));
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exGroupLinesAtRoot;
G2antt1->HasButtons = Exg2anttlib_tlb::ExpandButtonEnum::exCustom;
G2antt1->HasButtonsCustom[false] = 16777216;
G2antt1->HasButtonsCustom[true] = 33554432;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
G2antt1->EndUpdate();

2030
How can I change the visual appearance of the +/- buttons, open/close glyphs as current visual theme (method 2)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant("XP:TREEVIEW 2 1"));
	var_Appearance->Add(2,TVariant("XP:TREEVIEW 2 2"));
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exTreeGlyphOpen] = 0x1000000;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exTreeGlyphClose] = 0x2000000;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
G2antt1->EndUpdate();

2029
How can I find if the control is running in DPI mode
OutputDebugString( PChar(G2antt1->FormatABC(L"dpi = 1 ? `normal/stretch mode` : `dpi mode`",TNoParam(),TNoParam(),TNoParam())) );

2028
How can I change the visual appearance of the +/- buttons (method 1)

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABDwCg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQS") +
"BcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+Opf" +
"DxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4" +
"llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJegef4zluaJ3nqPJeCYH4BAeX5TDLBpVGqKRRnwf4flefZtHsX54BYAR/F+EwVnUd5eAMMJKDIChygyIQpAoEh4iIJ5Jlg" +
"XIcgCXpIGoFwnGEQh6BEKBgmMIICHgIJCAiUAzgyUoAhwJohkiRgygwYpiGoKwzGIcgKCkNQNCMRIbCYCRYk4QoMiOchWDwNBjhiJJaDYTRiGiFwlCQAhOE8JBJHITIR" +
"gwZRZFCFCZBkOIUhKTRpCWAwgGYQ4El4NxlBifIWCcCYCFoaoMGaKYyG6GxlBmGJdhkCAWBIeA5g4U4QhMJAImkPIShRVxGgQJRlCIUISh+SJpnCZIeBgFgiHgO4OlOM" +
"INCISByECDQikkGhuh2JwpmqBogCKaYiC6FwhmkQ4yHgYgYiaHopiuaRakCbIsisSpGjYOwaHYKYMCkK5CA2IxrCwCwFigaJrkLTI6lcdANAEgIA="));
	var_Appearance->Add(2,TVariant(String("gBFLBCJwBAEHhEJAAEhABEICg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLJQKQS") +
"BcQR9EaBZBAWTpQC0OJDTJRI4TNAgbSYAAYRqoCb6loTKypaxjCQQIgkUBpGKdBynEYsDwSGyJCCJWyIbpKAwoVbcs4AYhuJpaQi+d5PFbjVT8dLAMBwLA8EwXAJ+Opf" +
"DxXU7eFKpR5fchXTI8UxXFqXZhkeQrfh7KYVRBKdBQRBEFQPJqnahqOpaXo2RoLUJKcQwHTmHYNQTALyuTALZrWeZ3XrgN74LbtZzVQauYRpbCMEr6bpoWLnFi6Ho1U4" +
"llWah1jqSweFqfxPgQQRphi+Yak0YIuqUfJeg8X4rluaZ3niGB+AQHx/EyShjjEVYqiUR5rnmex/GAB5+AIf4gEeXJFHyXZ3gCTAygyAociMKBKEKBIeCiCZyHYFAnCE" +
"eBkh+BghFgRIegOCgYCySAgh4CAkgINAMmMNIgCcCYjn4LoLmMCJGDKC5ijIagoDMYhCAoJg1A0IxEhsJgJFiThChCY5yFYPA0GOGIYloNhNGIaIXCUJACE4TwkEkchO" +
"FSFYlFkXhUCUCQZEYTglCSMxaEkYJIBmFJhDeDZZEYPwlgmQhghaGqVDoa4bGaeY6FGGZNlmFIBGEJ4jhiZQ5AkMhAg6E5JCkRoGCUSQ6B6CYiSCBIOh+DhJmmARiWQO" +
"JtDsCJSCSBwkXSLIRicaZ6HqIIomoIguhwIpphIHoWDsJ4mCGChpmqOpGheLIOkqUo2iya4DjGJxihiQoSj4IJaDaMpCjCWoGg6PgpBiQ4tHcQJQBAgI="));
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exTreeGlyphOpen] = 0x1000000;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exTreeGlyphClose] = 0x2000000;
G2antt1->Columns->Add(L"Column");
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Root 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 1"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child 2"));
	var_Items->set_ExpandItem(h,true);
	h = var_Items->AddItem(TVariant("Root 2"));
	var_Items->InsertItem(h,TNoParam(),TVariant("Child"));
G2antt1->EndUpdate();

2027
How can I add a summary bar once the user group by a column

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemDividerLine(Item,Exg2anttlib_tlb::DividerLineEnum::EmptyLine);
		var_Items->AddBar(Item,TVariant("Summary"),TVariant(TDateTime(2017,12,2).operator double()),TVariant(TDateTime(2017,12,2).operator double()),TNoParam(),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant(""),-3,TVariant(""));
		long l = var_Items->get_GroupItem(Item);
		var_Items->set_CellSingleLine(TVariant(Item),TVariant(l),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
		var_Items->set_CellBold(TVariant(Item),TVariant(l),true);
		var_Items->set_ItemBackColor(Item,RGB(190,190,190));
	G2antt1->Chart->set_ItemBackColor(Item,RGB(190,190,190));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,10).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
G2antt1->VisualAppearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABOUGACAADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJwFgmEgADCMQwAFBIbhrE4ZBjHGQRUgyI43RhHUBzV") +
"IUBxDEaTZLlEYJBgeHYhDJPcaUVDcWQHGyeZwjSgpKoWSJIU5NcggPDgEwTKCmKlTAKoSzJMyEmwWRAdVTZLSEaxierKPhyWT/XgAF4PfDFKRXFqXY5mKZJFqKOI8TxI" +
"NgxPQMGyrBqraLqKwQGrGCQKSBhUZ3dS2JR3OSlYRuQAMVgOXoDZhPWZXbDtSzPE63NgtOR5DiGWalABoeoxRa9cz3ViCJSrGTqIoINIzZLHFQbPpdAYdP6BeIjXhhZx" +
"BBuLZXmEOh9CcNoni2N4MjWVodh+DpfBeLJinsWR9AyYwVAkGBhEAFphGiRogDEGBamkFgtjcZgHiMbgehYaQhAIEIREAaQYkcQZUHIGRUGQDBOEaBAhDYDxGkMZAkCg" +
"eoagYZAYEYAYIAWGhemICIFj8WIiCiFR5gkIhogmBoKGKJx2C6C5hniMgggqYwog0UoNGMZJiDiCZRgOLY0ECUAQICA=="));
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,342);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Summary"));
		var_Bar->StartShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty;
		var_Bar->EndShape = Exg2anttlib_tlb::ShapeCornerEnum::exShapeIconEmpty;
		var_Bar->Shape = Exg2anttlib_tlb::ShapeBarEnum::exShapeSolid;
		var_Bar->Color = 0x1000000;
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%513%>"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"C1");
	var_Columns->Add(L"C2");
	var_Columns->Add(L"C3");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos");
		var_Column->FormatColumn = L"1 pos ``";
		var_Column->AllowGroupBy = false;
		var_Column->Position = 0;
		var_Column->Width = 48;
		var_Column->AllowSizing = false;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column.";
G2antt1->AllowGroupBy = true;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exNoLinesAtRoot;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column1->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->EndUpdate();

2026
Is it possible to display no +/- button for grouped items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemDividerLine(Item,Exg2anttlib_tlb::DividerLineEnum::EmptyLine);
		var_Items->AddBar(Item,TVariant("Progress"),TVariant(TDateTime(2017,12,2).operator double()),TVariant(TDateTime(2017,12,2).operator double()),TNoParam(),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant(""),-3,TVariant(""));
		long l = var_Items->get_GroupItem(Item);
		var_Items->set_CellSingleLine(TVariant(Item),TVariant(l),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
		var_Items->set_CellBold(TVariant(Item),TVariant(l),true);
		var_Items->set_ItemBackColor(Item,RGB(190,190,190));
	G2antt1->Chart->set_ItemBackColor(Item,RGB(190,190,190));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,10).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,342);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"C1");
	var_Columns->Add(L"C2");
	var_Columns->Add(L"C3");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos");
		var_Column->FormatColumn = L"1 pos ``";
		var_Column->AllowGroupBy = false;
		var_Column->Position = 0;
		var_Column->Width = 48;
		var_Column->AllowSizing = false;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column.";
G2antt1->AllowGroupBy = true;
G2antt1->HasLines = Exg2anttlib_tlb::HierarchyLineEnum::exNoLine;
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exNoLinesAtRoot;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column1->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
	var_Column1->Alignment = Exg2anttlib_tlb::AlignmentEnum::CenterAlignment;
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellBackColor,TVariant(15790320));
G2antt1->EndUpdate();

2025
How can I change the label, caption or the formula of the grouped items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->AddBar(Item,TVariant("Progress"),TVariant(TDateTime(2017,12,2).operator double()),TVariant(TDateTime(2017,12,2).operator double()),TNoParam(),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant(""),-3,TVariant(""));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,10).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,342);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"C1");
		var_Column->GroupByTotalField = L"";
		var_Column->GroupByFormatCell = L"upper(value)";
	var_Columns->Add(L"C2");
	var_Columns->Add(L"C3");
	Exg2anttlib_tlb::IColumnPtr var_Column1 = var_Columns->Add(L"Pos");
		var_Column1->FormatColumn = L"1 pos ``";
		var_Column1->AllowGroupBy = false;
		var_Column1->Position = 0;
		var_Column1->Width = 48;
		var_Column1->AllowSizing = false;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column.";
G2antt1->AllowGroupBy = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
G2antt1->Columns->get_Item(TVariant(0))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->EndUpdate();

2024
How can I change the aspect of grouped items

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ItemDividerLine(Item,Exg2anttlib_tlb::DividerLineEnum::EmptyLine);
		var_Items->AddBar(Item,TVariant("Progress"),TVariant(TDateTime(2017,12,2).operator double()),TVariant(TDateTime(2017,12,2).operator double()),TNoParam(),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant(""),-3,TVariant(""));
		long l = var_Items->get_GroupItem(Item);
		var_Items->set_CellSingleLine(TVariant(Item),TVariant(l),Exg2anttlib_tlb::CellSingleLineEnum::exCaptionWordWrap);
		var_Items->set_CellBold(TVariant(Item),TVariant(l),true);
		var_Items->set_ItemBackColor(Item,RGB(190,190,190));
	G2antt1->Chart->set_ItemBackColor(Item,RGB(190,190,190));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,10).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,342);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"C1");
	var_Columns->Add(L"C2");
	var_Columns->Add(L"C3");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos");
		var_Column->FormatColumn = L"1 pos ``";
		var_Column->AllowGroupBy = false;
		var_Column->Position = 0;
		var_Column->Width = 48;
		var_Column->AllowSizing = false;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column.";
G2antt1->AllowGroupBy = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
G2antt1->Columns->get_Item(TVariant(0))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->EndUpdate();

2023
How can I collapse all items when the user performs a grouping

// AddGroupItem event - Occurs after a new Group Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddGroupItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
		var_Items->set_ExpandItem(Item,false);
		var_Items->set_ItemDividerLine(Item,Exg2anttlib_tlb::DividerLineEnum::EmptyLine);
		var_Items->AddBar(Item,TVariant("Progress"),TVariant(TDateTime(2017,12,2).operator double()),TVariant(TDateTime(2017,12,2).operator double()),TNoParam(),TNoParam());
		var_Items->DefineSummaryBars(Item,TVariant(""),-3,TVariant(""));
}

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,10).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,342);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"C1");
	var_Columns->Add(L"C2");
	var_Columns->Add(L"C3");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos");
		var_Column->FormatColumn = L"1 pos ``";
		var_Column->AllowGroupBy = false;
		var_Column->Position = 0;
		var_Column->Width = 48;
		var_Column->AllowSizing = false;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"Drag a <b>column</b> header here to group by that column.";
G2antt1->AllowGroupBy = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
G2antt1->Columns->get_Item(TVariant(0))->SortOrder = Exg2anttlib_tlb::SortOrderEnum::SortAscending;
G2antt1->EndUpdate();

2022
Is it possible to select columns that user can drop to the sort bar, when using the Group By feature

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,10).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,342);
Exg2anttlib_tlb::IColumnsPtr var_Columns = G2antt1->Columns;
	var_Columns->Add(L"C1");
	var_Columns->Add(L"C2");
	var_Columns->Add(L"C3");
	Exg2anttlib_tlb::IColumnPtr var_Column = var_Columns->Add(L"Pos");
		var_Column->FormatColumn = L"1 pos ``";
		var_Column->AllowGroupBy = false;
		var_Column->Position = 0;
		var_Column->Width = 48;
		var_Column->AllowSizing = false;
G2antt1->SortBarVisible = true;
G2antt1->SortBarCaption = L"<fgcolor=FF0000>Try to drag the Pos column here.";
G2antt1->AllowGroupBy = true;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	long h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item A"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem A.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem A.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
	h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("SubItem B.1"));
	var_Items->set_CellValue(TVariant(h),TVariant(2),TVariant("SubItem B.2"));
G2antt1->EndUpdate();

2021
How can I filter for the type of the bars I have in my chart

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,11,28).operator double()));
	var_Chart->set_PaneWidth(false,0);
	Exg2anttlib_tlb::IBarPtr var_Bar = var_Chart->Bars->get_Item(TVariant("Task"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%0%>"));
		var_Bar->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
	Exg2anttlib_tlb::IBarPtr var_Bar1 = var_Chart->Bars->Copy(L"Task",L"GTask");
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%0%>"));
		var_Bar1->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar1->Color = RGB(0,255,0);
	Exg2anttlib_tlb::IBarPtr var_Bar2 = var_Chart->Bars->Copy(L"Task",L"RTask");
		var_Bar2->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarCaption,TVariant("<%=%0%>"));
		var_Bar2->set_Def(Exg2anttlib_tlb::ItemBarPropertyEnum::exBarHAlignCaption,TVariant(18));
		var_Bar2->Color = RGB(255,0,0);
	var_Chart->ColumnsFormatLevel = L"0";
G2antt1->OnResizeControl = Exg2anttlib_tlb::OnResizeControlEnum::exDisableSplitter | Exg2anttlib_tlb::OnResizeControlEnum::exResizeChart;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Default");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Type");
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarKey,TVariant(""));
	var_Column1->set_Def(Exg2anttlib_tlb::DefColumnEnum::exCellValueToItemBarProperty,TVariant(0));
	var_Column1->Visible = false;
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AllowCellValueToItemBar = true;
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 1")),TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,12).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 2")),TVariant("GTask"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,12).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 3")),TVariant("RTask"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,12).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 4")),TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,12).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 5")),TVariant("GTask"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,12).operator double()),TNoParam(),TNoParam());
	var_Items->AddBar(var_Items->AddItem(TVariant("Item 6")),TVariant("RTask"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,12).operator double()),TNoParam(),TNoParam());
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = TVariant(String("(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[") +
"<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchi" +
"temcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount" +
" + ` item(s)`) )))");
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCompact | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarShowCloseIfRequired | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarSingleLine | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->get_Item(TVariant(1));
	var_Column2->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column2->Filter = L"GTask|RTask";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2020
How can I display the control's filter bar in the Items section only, as it was displayed before

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Pos");
	var_Column2->AllowSizing = false;
	var_Column2->AllowSort = false;
	var_Column2->Width = 32;
	var_Column2->FormatColumn = L"1 apos ``";
	var_Column2->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item B"))),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarShort;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->get_Item(TVariant(1));
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exPattern;
	var_Column3->Filter = L"*B";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2019
FilterBarCaption ALL Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	TVariant i = TVariant(G2antt1->FormatABC(L"value + 1",G2antt1->Items->get_ItemToIndex(Item),TNoParam(),TNoParam()));
	G2antt1->Items->set_CellImage(TVariant(Item),TVariant(3),i);
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column2->Editor;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1));
	var_Column2->DisplayFilterButton = true;
	var_Column2->DisplayFilterPattern = false;
	var_Column2->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exCheck;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->Add(L"Image");
	var_Column3->DisplayFilterButton = true;
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exImage;
	var_Column3->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox;
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->Add(L"Pos");
	var_Column4->AllowSizing = false;
	var_Column4->AllowSort = false;
	var_Column4->Width = 32;
	var_Column4->FormatColumn = L"1 apos ``";
	var_Column4->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	long h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellState(TVariant(h),TVariant(2),1);
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = TVariant(String("(( ( all replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace `[") +
"<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matchi" +
"temcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount" +
" + ` item(s)`) )))");
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column5 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column5->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column5->Filter = L"Item A|Item B";
G2antt1->Columns->get_Item(TVariant(2))->Filter = L"1";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2018
FilterBarCaption ALL Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	TVariant i = TVariant(G2antt1->FormatABC(L"value + 1",G2antt1->Items->get_ItemToIndex(Item),TNoParam(),TNoParam()));
	G2antt1->Items->set_CellImage(TVariant(Item),TVariant(3),i);
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column2->Editor;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1));
	var_Column2->DisplayFilterButton = true;
	var_Column2->DisplayFilterPattern = false;
	var_Column2->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exCheck;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->Add(L"Image");
	var_Column3->DisplayFilterButton = true;
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exImage;
	var_Column3->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox;
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->Add(L"Pos");
	var_Column4->AllowSizing = false;
	var_Column4->AllowSort = false;
	var_Column4->Width = 32;
	var_Column4->FormatColumn = L"1 apos ``";
	var_Column4->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	long h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellState(TVariant(h),TVariant(2),1);
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = L"all";
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column5 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column5->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column5->Filter = L"Item A|Item B";
G2antt1->Columns->get_Item(TVariant(2))->Filter = L"1";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2017
FilterBarCaption ALLUI Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	TVariant i = TVariant(G2antt1->FormatABC(L"value + 1",G2antt1->Items->get_ItemToIndex(Item),TNoParam(),TNoParam()));
	G2antt1->Items->set_CellImage(TVariant(Item),TVariant(3),i);
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column2->Editor;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1));
	var_Column2->DisplayFilterButton = true;
	var_Column2->DisplayFilterPattern = false;
	var_Column2->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exCheck;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->Add(L"Image");
	var_Column3->DisplayFilterButton = true;
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exImage;
	var_Column3->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox;
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->Add(L"Pos");
	var_Column4->AllowSizing = false;
	var_Column4->AllowSort = false;
	var_Column4->Width = 32;
	var_Column4->FormatColumn = L"1 apos ``";
	var_Column4->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	long h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellState(TVariant(h),TVariant(2),1);
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = TVariant(String("(( ( allui replace `[<b>` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `</b>]` with ` </b></bgcolor></fgcolor>` replace ") +
"`[<s>` with `<bgcolor=C0C0C0><fgcolor=FFFFFF> ` replace `</s>]` with ` </fgcolor></bgcolor>` )  + `<r><fgcolor=808080>` + ( matc" +
"hitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcou" +
"nt + ` item(s)`) )))");
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column5 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column5->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column5->Filter = L"Item A|Item B";
G2antt1->Columns->get_Item(TVariant(2))->Filter = L"1";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2016
FilterBarCaption ALLUI Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	TVariant i = TVariant(G2antt1->FormatABC(L"value + 1",G2antt1->Items->get_ItemToIndex(Item),TNoParam(),TNoParam()));
	G2antt1->Items->set_CellImage(TVariant(Item),TVariant(3),i);
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column2->Editor;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1));
	var_Column2->DisplayFilterButton = true;
	var_Column2->DisplayFilterPattern = false;
	var_Column2->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exCheck;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->Add(L"Image");
	var_Column3->DisplayFilterButton = true;
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exImage;
	var_Column3->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox;
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->Add(L"Pos");
	var_Column4->AllowSizing = false;
	var_Column4->AllowSort = false;
	var_Column4->Width = 32;
	var_Column4->FormatColumn = L"1 apos ``";
	var_Column4->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	long h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellState(TVariant(h),TVariant(2),1);
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = L"allui";
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column5 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column5->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column5->Filter = L"Item A|Item B";
G2antt1->Columns->get_Item(TVariant(2))->Filter = L"1";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2015
FilterBarCaption AVAILABLE Keyword ( sample 2, result )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	TVariant i = TVariant(G2antt1->FormatABC(L"value + 1",G2antt1->Items->get_ItemToIndex(Item),TNoParam(),TNoParam()));
	G2antt1->Items->set_CellImage(TVariant(Item),TVariant(3),i);
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column2->Editor;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1));
	var_Column2->DisplayFilterButton = true;
	var_Column2->DisplayFilterPattern = false;
	var_Column2->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exCheck;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->Add(L"Image");
	var_Column3->DisplayFilterButton = true;
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exImage;
	var_Column3->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox;
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->Add(L"Pos");
	var_Column4->AllowSizing = false;
	var_Column4->AllowSort = false;
	var_Column4->Width = 32;
	var_Column4->FormatColumn = L"1 apos ``";
	var_Column4->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	long h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellState(TVariant(h),TVariant(2),1);
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = TVariant(String("(( ( value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` ) + ` ` + ( ava") +
"ilable replace `[` with `<bgcolor=C0C0C0><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>` replace `<s>` with `" +
"` replace `</s>` with `` ) + `<fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount" +
" + 1) + ` result(s)` ) : (`<r><fgcolor=808080>`+ itemcount + ` item(s)`) )))");
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column5 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column5->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column5->Filter = L"Item A|Item B";
G2antt1->Columns->get_Item(TVariant(2))->Filter = L"1";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2014
FilterBarCaption AVAILABLE Keyword ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	TVariant i = TVariant(G2antt1->FormatABC(L"value + 1",G2antt1->Items->get_ItemToIndex(Item),TNoParam(),TNoParam()));
	G2antt1->Items->set_CellImage(TVariant(Item),TVariant(3),i);
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Images(TVariant(String("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTq") +
"lVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m" +
"0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/y" +
"NAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="));
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column2->Editor;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1));
	var_Column2->DisplayFilterButton = true;
	var_Column2->DisplayFilterPattern = false;
	var_Column2->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exCheck;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->Add(L"Image");
	var_Column3->DisplayFilterButton = true;
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exImage;
	var_Column3->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox;
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->Add(L"Pos");
	var_Column4->AllowSizing = false;
	var_Column4->AllowSort = false;
	var_Column4->Width = 32;
	var_Column4->FormatColumn = L"1 apos ``";
	var_Column4->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	long h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellValue(TVariant(h),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellState(TVariant(h),TVariant(2),1);
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080> ` + value + ` </fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = L"value + ` ` + available";
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column5 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column5->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column5->Filter = L"Item A|Item B";
G2antt1->Columns->get_Item(TVariant(2))->Filter = L"1";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2013
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 3, results )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Pos");
	var_Column2->AllowSizing = false;
	var_Column2->AllowSort = false;
	var_Column2->Width = 32;
	var_Column2->FormatColumn = L"1 apos ``";
	var_Column2->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item B"))),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080>` + value + `</fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = TVariant(String("(`<b>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `` : `` ) + `<r>` + abs(matchitemcount + 1) +") +
" ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )) replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replac" +
"e `]` with ` </b></bgcolor></fgcolor>`");
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarToggle;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column3->Filter = L"Item A|Item B";
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->get_Item(TVariant(1));
	var_Column4->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exPattern;
	var_Column4->Filter = L"*B";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2012
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 2 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Pos");
	var_Column2->AllowSizing = false;
	var_Column2->AllowSort = false;
	var_Column2->Width = 32;
	var_Column2->FormatColumn = L"1 apos ``";
	var_Column2->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item B"))),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080>` + value + `</fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = L"value replace `[` with `<bgcolor=000000><fgcolor=FFFFFF><b> ` replace `]` with ` </b></bgcolor></fgcolor>`";
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarToggle;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column3->Filter = L"Item A|Item B";
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->get_Item(TVariant(1));
	var_Column4->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exPattern;
	var_Column4->Filter = L"*B";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2011
Is it possible to somehow highlight the column's name different than its filter value in the control's filter bar ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Col-1");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Col-2");
	var_Column1->DisplayFilterButton = true;
	var_Column1->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->Add(L"Pos");
	var_Column2->AllowSizing = false;
	var_Column2->AllowSort = false;
	var_Column2->Width = 32;
	var_Column2->FormatColumn = L"1 apos ``";
	var_Column2->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item A"))),TVariant(1),TVariant("Sub-Item A"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item B"))),TVariant(1),TVariant("Sub-Item B"));
	var_Items->set_CellValue(TVariant(var_Items->AddItem(TVariant("Item C"))),TVariant(1),TVariant("Sub-Item C"));
G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd] = PChar(G2antt1->FormatABC(L"`<fgcolor=808080>` + value + `</fgcolor>`",TVariant(G2antt1->Description[Exg2anttlib_tlb::DescriptionTypeEnum::exFilterBarAnd]),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = L"value replace `[` with `<fgcolor=808080>[` replace `]` with `]</fgcolor>`";
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarToggle;
Exg2anttlib_tlb::IColumnPtr var_Column3 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column3->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column3->Filter = L"Item A|Item B";
Exg2anttlib_tlb::IColumnPtr var_Column4 = G2antt1->Columns->get_Item(TVariant(1));
	var_Column4->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exPattern;
	var_Column4->Filter = L"*B";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2010
Is it possible to automatically displays the control's filter label to the right

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Item");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Pos");
	var_Column1->AllowSizing = false;
	var_Column1->AllowSort = false;
	var_Column1->Width = 32;
	var_Column1->FormatColumn = L"1 apos ``";
	var_Column1->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
G2antt1->FilterBarCaption = L"`<r>` + value";
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarShowCloseOnRight | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarToggle;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column2->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column2->Filter = L"Item B";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2009
How can I get the number of results/items being shown in the control's filter bar (sample 4)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Item");
	var_Column->DisplayFilterButton = true;
	var_Column->FilterList = Exg2anttlib_tlb::FilterListEnum::exShowExclude | Exg2anttlib_tlb::FilterListEnum::exShowFocusItem | Exg2anttlib_tlb::FilterListEnum::exShowCheckBox | Exg2anttlib_tlb::FilterListEnum::exSortItemsAsc;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Pos");
	var_Column1->AllowSizing = false;
	var_Column1->AllowSort = false;
	var_Column1->Width = 32;
	var_Column1->FormatColumn = L"1 apos ``";
	var_Column1->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->FilterBarPrompt = PChar(G2antt1->FormatABC(L"`<b>` + value",TVariant(G2antt1->FilterBarPrompt),TNoParam(),TNoParam()));
G2antt1->FilterBarCaption = TVariant(String("`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount ") +
"+ 1) + ` result(s)` ) : (`<fgcolor=808080>`+ itemcount + ` item(s)`) )");
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCompact | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarShowCloseOnRight | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarShowCloseIfRequired | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCaptionVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
G2antt1->EndUpdate();

2008
How can I get the number of results being shown in the control's filter bar (sample 3)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Columns->Add(L"Item")->DisplayFilterButton = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Pos");
	var_Column->AllowSizing = false;
	var_Column->AllowSort = false;
	var_Column->Width = 32;
	var_Column->FormatColumn = L"1 apos ``";
	var_Column->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->FilterBarCaption = TVariant(String("`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? ( ( len(value) ? `<br>` : `` ) + `<r>` + abs(matchitemcount ") +
"+ 1) + ` result(s)` ) : ``)");
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCompact | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCaptionVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column1->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column1->Filter = L"Item A|Item B";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2007
How can I get the number of results being shown in the control's filter bar (sample 2, compact)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Columns->Add(L"Item")->DisplayFilterButton = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Pos");
	var_Column->AllowSizing = false;
	var_Column->AllowSort = false;
	var_Column->Width = 32;
	var_Column->FormatColumn = L"1 apos ``";
	var_Column->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->FilterBarCaption = L"`<b><r>` + value + `</b><fgcolor=808080>` + ( matchitemcount < 0 ? `<off -4> ` + abs(matchitemcount + 1) + ` result(s)` : ``)";
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCompact | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarSingleLine | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCaptionVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column1->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column1->Filter = L"Item A|Item B";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2006
How can I get the number of results being shown in the control's filter bar (sample 1)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Columns->Add(L"Item")->DisplayFilterButton = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Pos");
	var_Column->AllowSizing = false;
	var_Column->AllowSort = false;
	var_Column->Width = 32;
	var_Column->FormatColumn = L"1 apos ``";
	var_Column->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->FilterBarCaption = L"`<b>` + value + `</b><r><fgcolor=808080>` + ( matchitemcount < 0 ? abs(matchitemcount + 1) + ` result(s)` : ``)";
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCaptionVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column1->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column1->Filter = L"Item A|Item B";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2005
FilterBarCaption Predefined Keywords

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

// AfterExpandItem event - Fired after an item is expanded (collapsed).
void __fastcall TForm1::G2antt1AfterExpandItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Refresh();
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->LinesAtRoot = Exg2anttlib_tlb::LinesAtRootEnum::exLinesAtRoot;
G2antt1->Columns->Add(L"Item")->DisplayFilterButton = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Check");
	Exg2anttlib_tlb::IEditorPtr var_Editor = var_Column->Editor;
		var_Editor->EditType = Exg2anttlib_tlb::EditTypeEnum::CheckValueType;
		var_Editor->set_Option(Exg2anttlib_tlb::EditorOptionEnum::exCheckValue2,TVariant(1));
	var_Column->DisplayFilterButton = true;
	var_Column->DisplayFilterPattern = false;
	var_Column->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exCheck;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->Add(L"Pos");
	var_Column1->AllowSizing = false;
	var_Column1->AllowSort = false;
	var_Column1->Width = 32;
	var_Column1->FormatColumn = L"1 apos ``";
	var_Column1->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	long h = var_Items->AddItem(TVariant("Item B"));
	var_Items->set_CellState(TVariant(var_Items->InsertItem(h,TNoParam(),TVariant("Sub-Item B1"))),TVariant(1),1);
	var_Items->InsertItem(h,TNoParam(),TVariant("Sub-Item B2"));
	var_Items->set_ExpandItem(h,true);
	var_Items->AddItem(TVariant("Item C"));
G2antt1->FilterInclude = Exg2anttlib_tlb::FilterIncludeEnum::exItemsWithChilds;
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->FilterBarCaption = TVariant(String("`<fgcolor=0000FF><i>value/current</i></fgcolor>: <fgcolor=808080>` + value + `</fgcolor>` + `<br><fgcolor=0000FF><i>available</") +
"i></fgcolor>: ` + available + `<br><fgcolor=0000FF><i>allui</i></fgcolor>: ` + allui + `<br><fgcolor=0000FF><i>all</i></fgcolor>" +
": ` + all + `<br><fgcolor=0000FF><i>itemcount</i></fgcolor>: <fgcolor=808080>` + itemcount + `</fgcolor>`+ `<br><fgcolor=0000FF>" +
"<i>visibleitemcount</i></fgcolor>: <fgcolor=808080>` + visibleitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>matchitemcount</" +
"i></fgcolor>: <fgcolor=808080>` + matchitemcount + `</fgcolor>`+ `<br><fgcolor=0000FF><i>promptpattern</i></fgcolor>: <fgcolor=8" +
"08080>` + promptpattern + `</fgcolor>`+ `<br><fgcolor=0000FF><i>leafitemcount</i></fgcolor>: <fgcolor=808080>` + leafitemcount +" +
" `</fgcolor>`");
G2antt1->FilterBarPromptPattern = L"B";
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCaptionVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column2 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column2->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column2->Filter = L"Item A|Item B";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2004
I am using filter prompt feature, and also column's filter, just wondering if possible to compact displaying the filter bar so it won't show on multiple lines

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Columns->Add(L"Item")->DisplayFilterButton = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Pos");
	var_Column->AllowSizing = false;
	var_Column->AllowSort = false;
	var_Column->Width = 32;
	var_Column->FormatColumn = L"1 apos ``";
	var_Column->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
G2antt1->FilterBarFont = (IFontDisp*)(G2antt1->Font);
G2antt1->FilterBarCaption = L"`<r><i><fgcolor=808080><upline><solidline><sha ;;0>` + value";
G2antt1->FilterBarPromptPattern = L"B";
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarCompact | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarSingleLine | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarVisible | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
Exg2anttlib_tlb::IColumnPtr var_Column1 = G2antt1->Columns->get_Item(TVariant(0));
	var_Column1->FilterType = Exg2anttlib_tlb::FilterTypeEnum::exFilter;
	var_Column1->Filter = L"Item A|Item B";
G2antt1->ApplyFilter();
G2antt1->EndUpdate();

2003
Just wondering if it is possible to show the filter bar's close button on the right ( sample 2 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->Columns->Add(L"Item")->DisplayFilterButton = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Pos");
	var_Column->AllowSizing = false;
	var_Column->AllowSort = false;
	var_Column->Width = 32;
	var_Column->FormatColumn = L"1 apos ``";
	var_Column->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarShowCloseOnRight | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarToggle | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
G2antt1->FilterBarPrompt = PChar(G2antt1->FormatABC(L"`<r>` + value",TVariant(G2antt1->FilterBarPrompt),TNoParam(),TNoParam()));
G2antt1->EndUpdate();

2002
Just wondering if it is possible to show the filter bar's close button on the right ( sample 1 )

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
G2antt1->RightToLeft = true;
G2antt1->Columns->Add(L"Item")->DisplayFilterButton = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Pos");
	var_Column->AllowSizing = false;
	var_Column->AllowSort = false;
	var_Column->Width = 32;
	var_Column->FormatColumn = L"1 apos ``";
	var_Column->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarToggle | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
G2antt1->EndUpdate();

2001
How can I change the visual appearance of the filter bar's close button (EBN)

// AddItem event - Occurs after a new Item has been inserted to Items collection.
void __fastcall TForm1::G2antt1AddItem(TObject *Sender,Exg2anttlib_tlb::HITEM   Item)
{
	G2antt1->Items->AddBar(Item,TVariant("Task"),TVariant(TDateTime(2017,12,4).operator double()),TVariant(TDateTime(2017,12,14).operator double()),TNoParam(),TNoParam());
}

G2antt1->BeginUpdate();
Exg2anttlib_tlb::IChartPtr var_Chart = G2antt1->Chart;
	var_Chart->LevelCount = 2;
	var_Chart->set_FirstVisibleDate(TVariant(TDateTime(2017,12,2).operator double()));
	var_Chart->set_PaneWidth(false,256);
Exg2anttlib_tlb::IAppearancePtr var_Appearance = G2antt1->VisualAppearance;
	var_Appearance->Add(1,TVariant(String("gBFLBCJwBAEHhEJAAEhABHQDg6AADACAxRDgMQBQKAAzAJBIYhiG4cYCgMZhXDOCYXABCEYRXBIZQ7BKNIxjSJ5BhIAAyDSJMjSRJUEhqGCWYDleYYYAKHIMQLOg7IJ") +
"jyI4/SJAYCydKAWhxIaZKJHCZoEDaTAADCNVAQp6MEIJVbVEI0e79OgBLp/Z7kECIJJAaRjHQdJxGLA8EhtCQhCZteK6SgMKJYXhWQYRXI1JwvMBrWrdQjiOYELQtMKm" +
"SZNLYGG4dR5SVJbcYhSYsRRFMoyDIOXYDLKsdYqSpXIThObEGgaPqJYjsUjCMKnR7HVIURrBPC9TBPE69ZgmC6ucKPX51ShKFaBWDZcwFAS+UBuYCAILiEAQGZ1XT8OR" +
"OicbgJgSTJRlCaZeDsHY7QGR4xkSYp3CaExZAQMgalQYAwjCAAfBANxcA2TgKAUOpDCGFhKg0RpXCwCwDHQHQHEyAIkCkOhbFOGA8A8DohBgRg9AccZcn8EpEjMLI2C2" +
"DYxAgQgvAIUIVkoAAPBQDJlECTZ3CCYwDACQwUA8A5MCAWAWDiQi4l8aQOEgLJuBgBgDmYFAzEoIoIl0WALgKYJbBABADAAHgHg8VAMmqCQQDMXABAATYwTmNwBDATJX" +
"AiAgjHmNQ5lgQ5QEQEQMmcWg/GwD5ylyNw2gMcJcjsBgBgOQQDDhRpVAMMwnDBFw1B0Ax8D0DxOmmJJIGQTY5hGMAwkwM4CAYLZAmAOJnAqAojiIGg6iieYkmeAYOHaK" +
"JDCyCwjH6AoggsQpQliAJLhgaJ0CESBTnyDwjk+cg4g4P5IHIHJ+BWRRzlYWAxiOUxihsY4KjKLJRGqC44FCegkkkM58iAKAPnIWIWD8SRSFSfQnkmewUhYP4GiGKJ7G" +
"0TIbCSUoggqUo0lAQ4LnEcBcD8Coiiif4nE+eAAn2HpOkcFJqi4T5SkyMw/kqQown8IBIBOdA+A+DJrBqVxXEqYo4lCApLhGHBnD8S4ymyfxmg+cwQkQP5egOUZIWoEA" +
"kjIeIPBMBJBD+TBjBifwvkuc58hQJQPmFrYykkchclSApKjGOBuD+TRDFCfw3mmIxNi8FxFlOXhVC4aYDFyPgvg2YBcBcLZGCGCJ0DSLRzGSWQ/lmY5+mEP5gmMDBZRS" +
"MRsFsOxMhMJJ/DsTpTnwaQaE+N5ojuNhdEYNI5C4TZJO1GRDmCaxnA2Yx4n8IpIjOTBQBQC5TgyYw7gUYRYikC0BYRwsDQBoB8eA6Q2hsE0BUXgywZtYCyHMKwnxSAhA" +
"QHkIQhRrBaDsCwA4ERiB2EWAIYIXhhiVEgAEUYwwYjyASLge4FhHgRDkM8OQih0jWPkGgBBAQ"));
G2antt1->Columns->Add(L"Item")->DisplayFilterButton = true;
Exg2anttlib_tlb::IColumnPtr var_Column = G2antt1->Columns->Add(L"Pos");
	var_Column->AllowSizing = false;
	var_Column->AllowSort = false;
	var_Column->Width = 32;
	var_Column->FormatColumn = L"1 apos ``";
	var_Column->Position = 0;
Exg2anttlib_tlb::IItemsPtr var_Items = G2antt1->Items;
	var_Items->AddItem(TVariant("Item A"));
	var_Items->AddItem(TVariant("Item B"));
	var_Items->AddItem(TVariant("Item C"));
G2antt1->FilterBarPromptVisible = Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarToggle | Exg2anttlib_tlb::FilterBarVisibleEnum::exFilterBarPromptVisible;
G2antt1->Background[Exg2anttlib_tlb::BackgroundPartEnum::exFooterFilterBarButton] = 0x1000000;
G2antt1->EndUpdate();